たまには Haskell のエントリを。
昨日、unfoldr の使い方を調べてるときに気づいたんだけど、scanl を使ってもフィボナッチ数列を作れる。Haskell だから当然無限リストだ。
Prelude> let fib = scanl (+) 0 (1:fib) Prelude> take 20 $ fib [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181]
これは以前書いた zipWith を使うやつよりももっと簡単。