fun map f [] = [] | map f (x :: xs) = f x :: map f xs;map (fn n => n+1) [1,2,3];infix 5 ++;fun [] ++ ys = ys | (x :: xs) ++ ys = x :: (xs ++ ys);[1,2,3] ++ [4,5,6];fun reverse xs = let infix --> fun [] --> ys = ys | (x::xs) --> ys = xs --> (x::ys) in xs --> [] end;reverse [1,2,3,4];reverse [true,false];infix 3 o;fun (f o g) x = f(g x);let val I = reverse o reversein I [1,2,3]end;val zl = [(1,true),(2,false),(3,true)];fun fst (x,_) = x;fun snd (_,y) = y;map fst zl;fun split [] = ([],[]) | split ((x,y) :: rest) = let val (xs,ys) = split rest in (x :: xs, y :: ys) end;split zl;fun member a [] = false | member a (x::xs) = case a=x of true => true | false => member a xs;member 3 [1,2,3,4];member 3 [1,2];
fun map f [] = []
| map f (x :: xs) = f x :: map f xs;
map (fn n => n+1) [1,2,3];
infix 5 ++;
fun [] ++ ys = ys
| (x :: xs) ++ ys = x :: (xs ++ ys);
[1,2,3] ++ [4,5,6];
fun reverse xs =
let
infix -->
fun [] --> ys = ys
| (x::xs) --> ys = xs --> (x::ys)
in xs --> [] end;
reverse [1,2,3,4];
reverse [true,false];
infix 3 o;
fun (f o g) x = f(g x);
let
val I = reverse o reverse
in
I [1,2,3]
end;
val zl = [(1,true),(2,false),(3,true)];
fun fst (x,_) = x;
fun snd (_,y) = y;
map fst zl;
fun split [] = ([],[])
| split ((x,y) :: rest) =
let val (xs,ys) = split rest in
(x :: xs, y :: ys)
end;
split zl;
fun member a [] = false
| member a (x::xs) =
case a=x
of true => true
| false => member a xs;
member 3 [1,2,3,4];
member 3 [1,2];