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]