2
我是F#的新手,當我試圖實現函數rpt
時,發現了一些麻煩。F#函數返回值
let rec rpt f n x =
if n=0 then x
else
f (rpt f (n-1) x)
當我稱這個功能爲rpt (fun x -> x*x) 4 2
。答案是確定的val it : int = 65536
但是當我改變rpt
如下(只乘以2):
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
@李是的,你是完全正確的,謝謝。我對於理解功能範式非常困惑,所以我沒有看到這個明顯的原因。 – YV17