List.map

List.map はリストの各要素に関数を適用する。

 # List.map (fun x -> x * x) [1;2;3;4;5];;
 - : int list = [1; 4; 9; 16; 25]

実装してみる。

 # let rec map' f l =
     match l with
       [] -> []
     | hd::tl -> f hd :: map' f tl
   ;;
 val map' : ('a -> 'b) -> 'a list -> 'b list = <fun>
 # map' (fun x -> x * 10) [1;2;3;4;5];;
 - : int list = [10; 20; 30; 40; 50]

function構文を使って,

 # let rec map'' f = function
     [] -> []
   | hd::tl -> f hd :: map'' f tl
   ;;
 val map'' : ('a -> 'b) -> 'a list -> 'b list = <fun>
 # map'' (fun x -> x * 10) [1;2;3;4;5];;
 - : int list = [10; 20; 30; 40; 50]