这里是2个函数计算fibbonaci号,它们都正常工作,但都写在以不同的方式。F#fibbonaci高效的算法
哪一个你会考虑更好,更有效,代码更易懂?
let fibe n =
let rec loop acc1 acc2 n =
match n with
| n when n = 0I -> acc1
| x -> loop acc2 (acc1 + acc2) (x - 1I)
loop 0I 1I n
let myfib n =
if n = 0I then 0I
else if n = 1I then 1I
else
let rec loop i f s =
match i with
| x when x = n -> f+s
| x when x < n -> loop (i+1I) s (s+f)
loop 2I 0I 1I
http://codereview.stackexchange.com/ – tvanfosson 2012-04-22 13:16:21