想要在不使用序列运算符的情况下打印列表: -
这是我的程序,我想在没有";"的情况下制作这个程序。操作员而不使用"让"用于分配变量!
let rec print_row = function
[]->()
|h::t -> print_int h; Printf.printf(" "); print_row t;;
答案 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