haskell - 理解 Haskell 斐波那契数列

标签 haskell list-comprehension

fibs :: [Int]
fibs = 0 : 1 : [ a + b | (a, b) <- zip fibs (tail fibs)]

这会生成斐波那契数列。

我理解 : 的 guard 的行为, ziptail ,但我不明白<- 。它在这里做什么?

最佳答案

由于投票,我将我的评论变成了答案。

你看到的不是守卫,而是list comprehension 。首先,将其视为表达数学集合符号的一种方式,例如 A = { x | x element N } 这意味着:集合 A 是所有自然数的集合。在列表理解中,这将是 [x | x <- [1..] ]

您还可以对号码使用限制:[x | x <- [1..], x `mod` 2 == 0 ]以及许多其他事情。

有很多很好的 Haskell 图论,涵盖了列表理解,甚至还有一个关于 Haskell 资源的 StackOverflow 问题。

关于haskell - 理解 Haskell 斐波那契数列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2404156/

相关文章:

haskell - 根据输出功能设定输入的上限

解析元组的 Pythonic 方式

使用 lambda 的 Python 列表理解

haskell - 在 Fay 中将 Char 转换为 ASCII 码

haskell - OO 接口(interface)转换为 Haskell

haskell - 将 Store comonad 箭头化

python - 对表达式函数使用列表理解

python - python 列表推导式总是一种好的编程习惯吗?

haskell - 格式化 float ,去掉尾随零和小数点,在 haskell 中将大数切换为科学记数法

haskell - 用于进度跟踪的 Monad 转换器