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

Ocaml recursion not printing int when inside another Function

当我编译并执行这段代码时。它什么都不打印。

 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]

如果在 main 之外使用 xyz 则可以正常工作并打印 1 2 和 3

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

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

事实上,参数 list 未被 main 使用,因为在

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

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