当我编译并执行这段代码时。它什么也不打印。
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 在 main 之外使用,则正常工作且没有任何错误并打印 1 2 和 3
答案 0 :(得分:2)
在启用所有警告的情况下编译代码会产生以下警告:
1 | let main list =
^^^^
Warning 27 [unused-var-strict]: unused variable list.
事实上,参数 list
没有被 main
使用,因为在
let main list =
let rec xyz list =
...
in
xyz
您返回函数 xyz
而没有应用它。