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]