【发布时间】:2011-12-11 02:58:10
【问题描述】:
我正在将一些代码移植到 Haskell,广泛使用 一个窥视的迭代器。它本质上包装了一个集合并提供了两个 功能,“下一个”和“窥视”。 “下一个”功能推进 迭代器并返回头元素,而“peek”函数 返回头元素而不推进迭代器。会是什么 将这个概念转化为 Haskell 的优雅方式?我最好的主意 far 基本上是使用 State monad 来跟踪当前 迭代器的位置。有没有更清洁的方法?
(我也在初学者@上发过这个,但没有得到任何答案)
【问题讨论】:
-
你看过 Data.Enumerator 包吗?它带有窥视功能hackage.haskell.org/packages/archive/enumerator/0.4.16/doc/html/…
-
@ErikHinton - 考虑到问题描述,枚举器可能是极端的过度杀伤。
标签: haskell