OCaml 遍历二维列表
OCaml iterate through 2-dimensional list
例如如果有一个二维列表:
let two_list = [[1;2;3];
[4;5;6];
[7;8;9]];;
如何在不使用列表模块的情况下遍历此列表。
使用 List
模块,您将编写:
let two_list = [
[1;2;3];
[4;5;6];
[7;8;9]
]
let () =
List.iter (fun l -> List.iter print_int l) two_list
所以,如果你想在不使用 List
模块的情况下做同样的事情,你所要做的就是编写你自己的 list_iter
函数并使用它而不是 List.iter
:
let two_list = [
[1;2;3];
[4;5;6];
[7;8;9]
]
let rec list_iter f = function
| [] -> ()
| hd::tail -> begin
f hd;
list_iter f tail
end
let () =
list_iter (fun l -> list_iter print_int l) two_list
例如如果有一个二维列表:
let two_list = [[1;2;3];
[4;5;6];
[7;8;9]];;
如何在不使用列表模块的情况下遍历此列表。
使用 List
模块,您将编写:
let two_list = [
[1;2;3];
[4;5;6];
[7;8;9]
]
let () =
List.iter (fun l -> List.iter print_int l) two_list
所以,如果你想在不使用 List
模块的情况下做同样的事情,你所要做的就是编写你自己的 list_iter
函数并使用它而不是 List.iter
:
let two_list = [
[1;2;3];
[4;5;6];
[7;8;9]
]
let rec list_iter f = function
| [] -> ()
| hd::tail -> begin
f hd;
list_iter f tail
end
let () =
list_iter (fun l -> list_iter print_int l) two_list