[英]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.