Haskell:用括号运算符(==)混淆'foldl'

时间:2017-12-14 19:52:48

标签: haskell equality fold

以下是将'foldl'应用于此特定相等运算符的一些结果。我不理解它们 - 我认为每一行都应该返回true,因为“False == False == False ...”无论列表的长度如何都是真的。我是Haskell的新手。

Prelude> foldl (==) False [False]
True
Prelude> foldl (==) False [False,False,False]
True
Prelude> foldl (==) False [False,False,False,False]
False
Prelude> foldl (==) False [False,False,False,False,False]
True
Prelude> foldl (==) False [False,False,False,False,False,False]
False

我在尝试编写一个函数时发现了这些结果,该函数测试函数列表在应用于公共参数(返回布尔值)时是否给出相同的结果。

1 个答案:

答案 0 :(得分:4)

==是二元运算符。当你写False == False == False时,你真的在​​写(False == False)== False,这是True == False。也许现在你可以理解发生了什么。

Alexis King'

在评论中提交的答案