-
val length = let fun plus1(x,y) = 1 + y
in reduce plus1 0
end;
or, equivalently:
val length = reduce (fn(x,y) => 1 + y) 0;
-
val maximum_positive = let fun max(x,y) = if x>y then x else y
in reduce max 0
end;
or, equivalently:
val maximum_positive = reduce (fn(x,y) => if x>y then x else y) 0;
-
val reverse = let fun insert_at_end (x,l) = l @ [x]
in reduce insert_at_end []
end;
or, equivalently:
val reverse = reduce (fn(x,l) => l @ [x]) false;
-
fun occurs x = let fun found (y,b) = b orelse x=y
in reduce found false
end;
or, equivalently:
fun occurs x = reduce (fn(y,b) => b orelse x=y) false;