フィボナッチ数列をどこで使うのか、何なのか?については、昔書いてるので以下のpost参照のこと。
Haskellでフィボナッチ数列を書いてみます。いろいろ書き方があるみたいです。
まず、自分がぱっと思いついた書き方は以下のとおりです。
- fib a b = a : fib b (a+b)
遅延評価のおかげで、フィボナッチ数列を無限番目の項まで定義できます。使うときには、実際に必要な項までを取り出せばよいです。
例えば、30番目の項までを出力させたかったら、以下のようにします。
- main = print $ take 30 $ fib 1 1
次に、一般的(?)な書き方を紹介します。
- fib2 = 1 : 1 : zipWith (+) fib2 (tail fib2)
この書き方も、値は必要な時点で分かっていればよいという遅延評価のメリットを活かしています。
Haskell's cool!
Haskellのページに戻る。
0 件のコメント:
コメントを投稿