F# - 功能顺序

时间:2012-06-05 16:17:29

标签: f#

  

可能重复:
  How to have two methods calling each other?

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

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


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

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

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

1 个答案:

答案 0 :(得分:6)

您需要mutually-recursive functionsand关键字:

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

and y num =
   ...
   if (------) then
     x num
   ...