diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 69d0e57..5c826cf 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -146422,7 +146422,8 @@ TwoDimensionalPlotClipping(): Exports == Implementation where
error "clipDraw: fraction should be between 0 and 1"
empty? pointLists => [nil(),segment(0,0),segment(0,0)]
-- put all points together , sort them according to norm
- sortedList := sort(norm(#1) < norm(#2),select(not Pnan? #1,concat pointLists))
+ sortedList := sort((x:Pt,y:Pt):Boolean +-> norm(x) < norm(y),
+ select((z:Pt):Boolean +-> not Pnan? z,concat pointLists))
empty? sortedList => [nil(),segment(0,0),segment(0,0)]
n := # sortedList
num := numer fraction
@@ -146537,7 +146538,7 @@ TwoDimensionalPlotClipping(): Exports == Implementation where
error "clipDraw: plot has more than one branch"
empty?(pointList := first pointLists) =>
[nil(),xVals,segment(0,0)]
- sortedList := sort(yCoord(#1) < yCoord(#2),pointList)
+ sortedList := sort((x,y)+->yCoord(x) < yCoord(y),pointList)
n := # sortedList; num := numer fraction; den := denom fraction
clipNum := (n * num) quo den
-- throw out points with large and small y-coordinates
@@ -146552,7 +146553,8 @@ TwoDimensionalPlotClipping(): Exports == Implementation where
yMin := yMin - (numm :: SF) * yDiff / (denn :: SF)
yMax := yMax + (numm :: SF) * yDiff / (denn :: SF)
lists := discardAndSplit(pointList,_
- (yCoord(#1) < yMax) and (yCoord(#1) > yMin),xMin,xMax,yMin,yMax)
+ x +-> (yCoord(x) < yMax) and (yCoord(x) > yMin),
+ xMin,xMax,yMin,yMax)
yMin := yCoord(sortedList.clipNum)
yMax := yCoord(sortedList.(n - 1 - clipNum))
if Fnan? yMin then yMin : SF := 0
@@ -146590,10 +146592,10 @@ TwoDimensionalPlotClipping(): Exports == Implementation where
clipWithRanges(pointLists,xMin,xMax,yMin,yMax) ==
lists : L L Pt := nil()
for pointList in pointLists repeat
- lists := concat(lists,discardAndSplit(pointList,_
- (xCoord(#1) <= xMax) and (xCoord(#1) >= xMin) and _
- (yCoord(#1) <= yMax) and (yCoord(#1) >= yMin), _
- xMin,xMax,yMin,yMax))
+ lists := concat(lists,discardAndSplit(pointList,
+ (x:Pt):Boolean +-> (xCoord(x) <= xMax) and (xCoord(x) >= xMin) and
+ (yCoord(x) <= yMax) and (yCoord(x) >= yMin),
+ xMin,xMax,yMin,yMax))
(pt := findPt lists) case "failed" =>
[nil(),segment(0,0),segment(0,0)]
firstPt := pt :: Pt
diff --git a/changelog b/changelog
index 2ad8225..3908072 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20090624 tpd src/axiom-website/patches.html 20090624.04.tpd.patch
+20090624 tpd books/bookvol10.4 CLIP +-> conversion
20090624 tpd src/axiom-website/patches.html 20090624.03.tpd.patch
20090624 tpd books/bookvol10.4 TRIGMNIP +-> conversion
20090624 tpd src/axiom-website/patches.html 20090624.02.tpd.patch
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 6543579..169f744 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1657,5 +1657,7 @@ bookvol10.4 RDETRS +-> conversion
bookvol10.4 SOLVETRA +-> conversion
20090624.03.tpd.patch
bookvol10.4 TRIGMNIP +-> conversion
+20090624.04.tpd.patch
+bookvol10.4 CLIP +-> conversion