2013-04-21 4 views
1

Я знаю, как квадратные элементы списка, но как квадрат в списке списков?Квадратный список списков - 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

'List.map (fun x -> x * x) [1; 2; 3] ;; 'например, это то, что я мог бы использовать в списке, чтобы получить квадраты элементов, я не знаю, как использовать это в списке списков. – prima

+1

Положите этот код в вопрос. И вы можете использовать 'List.map' в любом списке, включая списки списков целых чисел. –

ответ

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]] *) 
Смежные вопросы