Standard ML of New Jersey (32-bit) v110.99 [built: Thu Dec 24 11:01:10 2020] - - - fun filter _ [] = [] = | filter p (x::_) = if p x then [x] else []; val filter = fn : ('a -> bool) -> 'a list -> 'a list - - filter (fn x => x=0) []; val it = [] : int list - - filter (fn x => x=0) [1,2,30,4,5,6]; val it = [] : int list - - filter (fn x => x=0) [0,1,2,30,4,5,6]; val it = [0] : int list - - filter (fn x => x=0) [0,1,2,0,3,0,4,5,0,6]; val it = [0] : int list - - - - - fun foldl h x ys = x; val foldl = fn : 'a -> 'b -> 'c -> 'b - - - fun foldl h x ys = h (hd ys, x); val foldl = fn : ('a * 'b -> 'c) -> 'b -> 'a list -> 'c - - - fun foldl h x [] = x = | foldl h x ys = h (hd ys, x); val foldl = fn : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b - - - fun foldl _ x [] = x = | foldl h x (y::_) = h (y, x); val foldl = fn : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b - - - fun foldl _ x [] = x = | foldl h x (y::ys) = foldl h (h (y, x)) ys; val foldl = fn : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b - - - - foldl; val it = fn : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b - foldr; val it = fn : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b -