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



以下是将'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

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

==是二进制运算符。当您写false == false == false时,您真的写(false == false)== false,true == false。也许现在您可以理解正在发生的事情。

在" Alexis King"的评论中提交的答案

最新更新