Clean syntactic sugar for currying
ML allows multiple formal argument patterns, which implies a curried function
- In essence, ML always curries for you
- You never see functions of multiple arguments in ML
- Even with tuples, it’s really a single argument
fun map f nil = nil | map f (x::xs) = f x:: map f xs;
val map = fn : (‘a -> ‘b) -> ‘a list -> ‘b list