September 22, 1999 | Strong Typing | Slide #24 |

val map = fn : ('a -> 'b) * 'a list -> 'b list

Actually, ML, supports *Currying* which means that you can define `map` like this:

fun map f [] = [] | map f (h::t) = (f h)::(map f t);

val map = fn : ('a -> 'b) -> ('a list -> 'b list)

val sqrtall = map sqrt;

val sqrtall = fn : real list -> real list

val sqrts = map sqrt [1.0, 2.0, 3.0, 4.0, 5.0];

val sqrts = [1.0, 1.414, 1.732, 2.0, 2.236] : real list

Next | Copyright © 1999 M-J. Dominus |