递归 – 如何让两个函数在OCaml中相互调用

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

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)
翻译自:https://stackoverflow.com/questions/8108237/how-to-have-2-functions-call-each-other-in-ocaml

转载注明原文:递归 – 如何让两个函数在OCaml中相互调用