我想在 Haskell 中自己实现严格的折叠功能:这可能吗?我读过 Lisp 宏可用于在很大程度上重新定义语言,使您能够在需要时有效地打破功能范式,并将其塑造成个性化的范式,以最整洁的方式完成工作可能的方式。我实际上并不了解 lisp,所以这可能是不正确的。
当您还考虑到在无类型的 lambda 演算中,数据类型被编码为函数时,我开始怀疑任何东西都可以编码为其他任何东西(GEB的精彩著作对此进行了详细讨论)。在这种情况下,表示严格的评估听起来应该很容易。
那么,您将如何在 haskell 中实现以下内容?
foldl' = -- ???
foldl1' = -- ???
我怀疑它与 Monads 和/或继续传递有关。