(* 目的:リストの各要素に f を施したリストを返す *) (* map : ('a -> 'b) -> 'a list -> 'b list *) let rec map f lst = match lst with [] -> [] | first :: rest -> f first :: map f rest (* 目的:lst の各要素を x との関係文字列にする *) (* hikaku : int -> int list -> string list *) let hikaku x lst = (* 目的:x との大小を表す文字列を返す *) (* hikaku1 : int -> string *) let hikaku1 y = if y < x then "小" else if x < y then "大" else "等" in map hikaku1 lst (* テスト *) let test1 = hikaku 3 [] = [] let test2 = hikaku 3 [4; 1; 3; 2] = ["大"; "小"; "等"; "小"] let test3 = hikaku 2 [4; 1; 3; 2] = ["大"; "小"; "大"; "等"]