将列表列表 - ocaml

时间:2013-04-21 09:13:25

标签: list ocaml

我知道如何对列表中的元素进行平方,但是如何在列表列表中求平方?

要对我可以使用的列表元素进行平方,例如:

List.map (fun x -> x*x) [1; 2; 3];;

如何在列表列表中执行此操作?

[[1; 2]; [2; 3]]  --> [[1; 4]; [4; 9]]

[[1; 2; 3]; [4; 2; 0]] --> [[1; 4; 9]; [16; 4; 0]]
例如,

由于

1 个答案:

答案 0 :(得分:4)

let square = fun x -> x * x;;
(* val square : int -> int = <fun> *)

List.map square;;
(* - : int list -> int list = <fun> *)

List.map (List.map square);;
(* - : int list list -> int list list = <fun> *)

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