F# - 功能顺序

coo*_*kya 2 f#

可能重复:
如何让两个方法互相调用?

我需要编写两个相互调用的函数.(里面的条件 - 所以他们最终会停止)

let x () : int =
   ...
   if (------) then
     y num
   ...


let y () : int =
   ...
   if (------) then
     x num
   ...
Run Code Online (Sandbox Code Playgroud)

问题是,据我所知,F#按外观顺序评估函数.所以写这个会产生编译错误......

有没有办法解决这个问题?那么这两个功能会相互了解吗?

pad*_*pad 6

您需要相互递归函数and关键字:

let rec x num =
   ...
   if (------) then
     y num
   ...

and y num =
   ...
   if (------) then
     x num
   ...
Run Code Online (Sandbox Code Playgroud)