2

重複の可能性:
2つのメソッドを相互に呼び出すにはどうすればよいですか?

お互いを呼び出す2つの関数を書く必要があります。(内部に条件があるので、最終的には停止します)

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


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

問題は、私が理解しているように、F#は関数を出現順に評価することです。したがって、これを書き込むとコンパイルエラーが発生します。

この問題を解決する方法はありますか?では、両方の機能がお互いを知っているのでしょうか?

4

1 に答える 1

6

相互再帰関数andのキーワードが必要です:

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

and y num =
   ...
   if (------) then
     x num
   ...
于 2012-06-05T16:22:22.343 に答える