是否有严格评估的功能表示?

时间:2011-12-28 02:43:53

标签: haskell lazy-evaluation ghc fold strict

我想在Haskell中自己实现严格的折叠功能:这可能吗?我已经读过Lisp宏可以用来在很大程度上重新定义语言,让你有能力在你需要的时候有效地打破功能范式,并将其塑造成一个个性化的范例,让你在最好的工作中完成工作。方式可能。我实际上并不知道口齿不清,所以可能不正确。

当你还考虑到在无类型的lambda演算数据类型被编码为函数时,我开始怀疑任何东西都可以被编码为其他东西(精彩的书GEB详细讨论了这一点)。在这种情况下,表示严格的评估听起来应该很容易。

那么,您将如何从haskell中实现以下内容?

foldl'  = -- ???
foldl1' = -- ???

我怀疑它与Monads和/或Continuation Passing有关。

1 个答案:

答案 0 :(得分:3)

如何实施foldl'Like this

Haskell提供seq原语用于添加严格性,并提供“爆炸模式”以方便使用。

另请参阅:Haskell 2010 > Predefined Types and Classes # Strict Evaluation