在没有序列运算符的情

时间:2014-07-26 18:19:07

标签: list printing ocaml

想要在不使用序列运算符的情况下打印列表: -

这是我的程序,我想在没有";"的情况下制作这个程序。操作员而不使用"让"用于分配变量!

let rec print_row = function
[]->()
|h::t -> print_int h; Printf.printf(" "); print_row t;; 

2 个答案:

答案 0 :(得分:0)

这看起来像是一项学校作业,所以我只是提出一些建议。

如果您正在尝试将函数重新表述为更惯用的OCaml,那么需要考虑的是List模块中的函数。特别是,您可以编写一个函数来为列表的每个元素执行您想要执行的操作,然后在List模块中查找为列表的每个元素调用函数的方法。

如果您只想删除;运算符(我很难意识到),您可以随时将a; b重写为let _ = a in b

答案 1 :(得分:0)

您希望实现一种通用方法,以便在任何类型的列表上应用函数。您可以使用List.map以下列方式进行此操作:

print_string (String.concat " " (List.map string_of_int [1;2;3;4]));;

您可以详细了解List.map here