【发布时间】:2010-09-22 13:34:52
【问题描述】:
iterate :: (a -> a) -> a -> [a]
(你可能知道)iterate 是一个接受函数和起始值的函数。然后它将函数应用于起始值,然后将相同的函数应用于最后一个结果,依此类推。
Prelude> take 5 $ iterate (^2) 2
[2,4,16,256,65536]
Prelude>
结果是一个无限列表。 (这就是我使用take 的原因)。
我的问题是如何在 Haskell 中实现自己的 iterate' 函数,只使用基础知识((:) (++) lambdas、模式匹配、守卫等)?
(这里是 Haskell 初学者)
【问题讨论】:
标签: haskell loops combinators