Ocaml递归在另一个函数内部时不打印int



当我编译并执行这段代码时。它什么也没印。

let main list = 
let rec xyz list = 
match list with
|[]->[]
|m::body -> 
begin
print_int m;
xyz body 
end
in xyz

let h = main [1;2;3]

如果xyz在主存储器外使用,则工作时没有任何错误,并打印1 2和3

在启用所有警告的情况下编译代码会产生以下警告:

1 | let main list =
^^^^
Warning 27 [unused-var-strict]: unused variable list.

事实上,main没有使用参数list,因为在中

let main list =
let rec xyz list =
...
in
xyz

您正在返回函数xyz而不应用它。

最新更新