12

重複の可能性:
[F#] 2 つのメソッドを相互に呼び出す方法は?

皆さんこんにちは、

相互に再帰的であることでメリットが得られる 2 つの関数があるシナリオがありますが、F# でこれを行う方法がよくわかりません。

私のシナリオは次のコードほど単純ではありませんが、コンパイルに似たものを取得したいと考えています。

let rec f x =
  if x>0 then
    g (x-1)
  else
    x

let rec g x =
  if x>0 then
    f (x-1)
  else
    x
4

3 に答える 3

27

let rec...andフォームも使用できます。

let rec f x =
  if x>0 then
    g (x-1)
  else
    x

and g x =
  if x>0 then
    f (x-1)
  else
    x
于 2010-09-01T18:53:33.160 に答える
2

相互に再帰的な関数を取得するには、一方を他方にパラメーターとして渡すだけです

let rec f g x =
  if x>0 then
    g (x-1)
  else
    x

let rec g x =
  if x>0 then
    f g (x-1)
  else
    x
于 2010-09-01T18:44:25.880 に答える
2

let rec ... and ...次の構成を使用します。

let rec f x =
  if x>0 then
    g (x-1)
  else
    x

and g x =
  if x>0 then
    f (x-1)
  else
    x
于 2010-09-01T18:54:51.897 に答える