我(\\)
在 Haskell 中听说过术语“列表差异”运算符,但仍然不太清楚如何理解它。有什么例子或想法吗?
问问题
3046 次
4 回答
9
(\\)
运算符(和函数)实现了difference
set difference ,因此,如果您有两个列表,a
并且b
,它只返回那些a
不在 in 中的元素b
,如图所示:
于 2011-05-29T13:59:13.270 回答
8
简而言之,它需要两个列表,遍历第二个列表,对于每个项目,从第一个列表中删除同一项目的第一个实例。
> [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]
于 2011-05-29T13:42:23.643 回答
0
假设您有一个事物列表,例如城市。让我们以这个列表为例:
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"]
于 2011-05-29T13:42:54.353 回答