メインメニューを開く

フィボナッチ数/F Sharp

< フィボナッチ数
2012年4月26日 (木) 14:26時点におけるimported>Administratorによる版 (→‎記述例2)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

F#によるフィボナッチ数の記述例。

目次

記述例 1編集

let rec fib x =
    match x with
    | x when x <= 0I -> 0I
    | 1I -> 1I
    | 2I -> 1I
    | x -> fib (x - 1I) + fib (x - 2I)
 
[0I .. 15I] |> Seq.iter (fun x -> printfn "fib(%O) = %O" x (fib x));;

記述例2編集

let fib x =
    let rec loop acc1 acc2 = 
        function
        | x when x <= 0I -> acc1
        | x -> loop acc2 (acc1 + acc2) (x - 1I)
    loop 0I 1I x
 
[0I .. 15I] |> Seq.iter (fun x -> printfn "fib(%O) = %O" x (fib x));;

関連項目編集

参考文献編集


外部リンク編集