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