我有这行代码,但不太明白为什么结果是[False, False]
i :: [Bool]
i = filter (\x-> (not x)) [False,False,True,True,True]
Run Code Online (Sandbox Code Playgroud)
我以为它会出来[True,True,True]。
非常感谢这里对结果的简短解释。提前致谢
根据文档,
filter应用于谓词和列表,返回满足谓词的元素的列表,即 [...]:Run Code Online (Sandbox Code Playgroud)>>> filter odd [1, 2, 3] [1,3]
定义的表达式i本质上是说:
过滤列表中的
x布尔值not xTrue[False, False, True, True, True]
not False是True,因此保留它。not False再次是True,因此也保留了该条目。not True是False,因此这些条目将被删除。结果是[False, False]。