【发布时间】:2014-08-20 19:30:51
【问题描述】:
我编写了以下代码来生成包含斐波那契数列的列表。
fibonacci = [a + b | a <- 1:fibonacci, b <- 0:1:fibonacci]
我希望列表的输出是[1,2,3,5,8,13..],但是,输出不是斐波那契数列。
我不太明白为什么它不起作用。
我的理由是,如果斐波那契数是[1,2,3,5,8,13..],那么这将等于[1,1,2,3,5,8,13..] 和[0,1,1,2,3,5,8,13..] 两个列表的总和,它们相当于1:[1,2,3,5,8,13..] 和0:1:[1,2,3,5,8,13..] 或@987654328 @和0:1:fibonacci
我已经查找了实现此序列的其他方法,但是我真的很想知道为什么我的代码不起作用。
【问题讨论】:
-
fibonacci = 0:1:[a + b | (a:b:_) <- iterate tail fibonacci] = 0:1:[a + b | (a,b) <- zip fibonacci (tail fibonacci)].
标签: haskell list-comprehension fibonacci