[英]Can't seem to get my head around the 'list difference' (\\) operator
我在 Haskell 中听说过术语“列表差异” (\\)
运算符,但仍然不太清楚如何理解它。 有什么例子或想法吗?
(\\)
运算符(以及difference
function )实现了set difference ,因此,如果您有两个列表a
和b
,它只返回a
中不在b
中的那些元素,如图所示:
简而言之,它需要两个列表,遍历第二个列表,对于每个项目,从第一个列表中删除同一项目的第一个实例。
> [1..10] \\ [2, 3, 5, 8]
[1,4,6,7,9,10]
> [1, 2, 1, 2, 1, 2] \\ [2]
[1,1,2,1,2]
> [1, 2, 1, 2, 1, 2] \\ [2, 2]
[1,1,1,2]
> [1, 2, 1, 2, 1, 2] \\ [2, 2, 1]
[1,1,2]
假设您有一个事物列表,例如城市。 让我们以这个列表为例:
a = ["London","Brussels","Tokio","Los Angeles","Berlin","Beijing"]
现在您要删除位于欧洲的所有城市。 你知道,这些城市在欧洲:
b = ["Glasgow","Paris","Bern","London","Madrid","Amsterdam","Berlin","Brussels"]
要获取a
中的城市列表,这些城市不在欧洲,因此不在b
中,您可以使用(\\)
:
a \\ b = ["Tokio","Los Angeles","Beijing"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.