似乎无法理解"列表差异"(\\)运算符

mac*_*ian 5 haskell element list set-difference

(\\)在Haskell中听到了"列表差异" 运算符这个术语,但仍然不知道如何理解它.任何例子或想法?

Don*_*art 9

(\\)运营商(与difference功能)实现设定的差异,所以,如果你有两个列表,a并且b,它只返回那些元素a不在b,如图所示:

在此输入图像描述

  • 但它实际上实现了多组差异; 允许参数列表多次包含相同的元素. (5认同)

Sam*_*war 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]
Run Code Online (Sandbox Code Playgroud)