在优雅的前奏中是否有任何替代Prelude的迭代函数?

时间:2017-01-10 19:46:08

标签: haskell classy-prelude

在标准前奏中:

Prelude> :t iterate
iterate :: (a -> a) -> a -> [a]

然而,在优雅的前奏中没有迭代,所以我认为可能有一些更通用的函数来做同样的事情,也许是一个monadic函数。我只是想不通它是什么。有吗?

1 个答案:

答案 0 :(得分:2)

您始终可以使用ClassyPrelude.repeatData.List.scanl重新实现它:

iterate = \f a -> scanl (\a f -> f a) a (repeat f)