The Fibonacci sequence as an unfold

Wednesday, 9th April, 2014

import Data.List

f :: [Integer]
f = unfoldr ( \x -> case x of
                      (0,0) -> Just (0, (1,0))
                      (a,b) -> Just (a+b, (b, a+b)) ) (0,0)

Usage:

> head f
0
> take 5 f
[0,1,1,2,3]
> take 15 f
[0,1,1,2,3,5,8,13,21,34,55,89,144,233,377]

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.