如何打印Ocaml中函数调用返回的列表

时间:2017-03-17 03:33:03

标签: ocaml

我使用以下功能打印列表

let rec print_list = function
  [] -> ()
| e::l -> print_int e ; print_string " " ; print_list l;;

我使用以下函数来反转列表

let rec rev l =
  match l with
    [] -> []
  | h::t -> rev t @ [h];;

我使用以下内容打印反转列表:

print_list rev [1; 2; 3; 4]

但是,在我的终端中,当我使用

运行名为reverse.ml的文件时
ocaml reverse.ml

我收到以下错误:

Error: This function has type int list -> unit
       It is applied to too many arguments; maybe you forgot a `;'.

我很好奇在OCaml中打印结果列表的语法。谢谢。

1 个答案:

答案 0 :(得分:2)

答案如下:

print_list (rev [1; 2; 3; 4])

内部函数需要包含在括号中。