2
私はF#を初めて使いました。関数rpt
を実装しようとしていたときにいくつか問題が見つかりました。F#関数の戻り値
rpt (fun x -> x*x) 4 2
としてこの関数を呼び出した
let rec rpt f n x =
if n=0 then x
else
f (rpt f (n-1) x)
。答えはval it : int = 65536
OKだった。しかし、以下のように、私は(唯一の2を乗じ)rpt
を変更する場合:
let rec rpt f n x =
if n=0 then 2*x
else
f (rpt f (n-1) x)
機能のみゼロを返します:val it : int = 0
。誰も何が起こるか説明できますか?
があふれ 'int'戻り値はありますか?他の入力にも使えますか? – Lee
@Leeはい、まったく正しいです、ありがとうございます。私はその明らかな理由を見ていないように機能的なパラダイムを理解することについてとても混乱していました。 – YV17