“和”在此功能中起什么作用?

时间:2018-12-03 17:04:46

标签: haskell

“已排序”是用于检查列表是否按升序排序的功能。

pairs :: [a] -> [(a,a)]
pairs xs = zip xs (tail xs)

sorted :: Ord a => [a] -> Bool
sorted xs = and [x <= y | (x,y) <- pairs xs]

我想知道“和”在经过排序的xs中做什么?

2 个答案:

答案 0 :(得分:7)

它称为and function from the standard library

and :: Foldable t => t Bool -> Bool
     

and返回布尔容器的合取。为了使结果为True,容器必须是有限的。 FalseFalse值的结果,该值距离左端有限。

答案 1 :(得分:0)

[x <= y | (x,y) <- pairs xs]

对于上述代码段,实际上是bool值的列表(请注意,该值由“ []”包围)

and的作用是获取布尔值列表,只需对所有值应用“和”逻辑,然后返回布尔值。

例如,如果我们向and提供列表[True,True,True],则将返回True。如果列表中的任何一个元素为False,则将返回False。