質問

可能な複製:
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
役に立ちましたか?

解決

使用することもできます 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

他のヒント

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

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

使用 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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top