【发布时间】:2013-12-25 12:13:36
【问题描述】:
在foldl definition possible wrong in SML/NJ 110.75 中,我发现关系foldl (op -) 2 [1] = foldr (op -) 2 [1] 成立。但是当我在 Haskell 中尝试上述方法时,我发现在 Haskell 中重写为 foldl (-) 2 [1] == foldr (-) 2 [1] 的上述关系不成立。为什么是这样? Haskell 对 fold 的定义是否与 SML/NJ 不同?
谢谢
【问题讨论】:
-
没有错,只是不同而已。
-
这就是我的要求。阅读最后一句“Haskell 对 fold 的定义是否与 SML/NJ 不同”?
-
答案是“是的,很明显”。
-
您能否将您的答案作为答案而不是评论,以便对其进行评分并可能给它打勾?顺便说一句,你能注意到这些差异吗?谢谢。
-
这种关系在 Haskell 中不成立的原因是
foldr你正在做2 - 1与1 - 2和foldl。请注意,这 2 个函数在 Haskell 中具有不同的签名,但在 SML/NJ 中具有相同的签名。