(* Q6 *) fun length [] = 0 | length (_::t) = 1+length t; fun max (x::xs) = let fun mx m [] = m | mx m (x::xs) = mx (if x > m then x else m) xs in mx x xs end; val plus = (op +); (* val length = fn : 'a list -> int val max = fn : int list -> int val plus = fn : int * int -> int *)