如何让2个函数在OCaml中相互调用

Dyl*_*lan 8 recursion ocaml

我希望在OCaml中有2个不同的递归函数,其中每个函数可以调用另一个函数.它不起作用,因为声明为1st的那个不能调用声明为2nd的那个.有没有办法让它工作,而不将两个功能合并为1?

Jef*_*eld 17

and是为了什么:

let rec f x = if x < 2 then 1 else x * g (x - 1)
and g x = if x < 2 then 1 else x * f (x - 1)
Run Code Online (Sandbox Code Playgroud)