微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OCaml 遍历二维列表

如何解决OCaml 遍历二维列表

例如如果有一个二维列表

let two_list = [[1;2;3];
                [4;5;6];
                [7;8;9]];;

如何在不使用 List 模块的情况下遍历此列表。

解决方法

使用 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。