-3
如何將兩個列表與不同的元素結合起來?像這樣的問題:如何將兩個列表與不同的元素結合起來?
如何將兩個列表與不同的元素結合起來?像這樣的問題:如何將兩個列表與不同的元素結合起來?
您正在尋找的(\\)
功能:
[2,4,6,8,10] \\ [3,4,5,6] == [2,8,10]
哈斯克爾自帶了大量的內置功能。特別是對於這樣簡單的任務,你會經常找到一個能完成這項工作的人。但你如何找到一個?
第一步是確定所需函數的類型。在這種情況下,你要尋找的是需要兩個列表與同類型(a
)的元素,併產生與相同類型的元素列表的功能:
[a] -> [a] -> [a]
下一頁search Hoogle的匹配類型的功能。 (\\)
接近結果的頂部。它包括以下文檔:
\\
函數是列表差異(非關聯)。在xs \\ ys
的結果中,第一次出現ys
的每個元素(如果有的話)已從xs
中刪除。因此(xs ++ ys) \\ xs == ys.
這是
deleteFirstsBy
一個特例,它允許程序員提供自己的平等的測試。
問題是*「如何編寫setDiff函數」*? – soon
我懷疑你的問題是因爲'setDiff'不經常被描述爲「合併兩個列表」而被投票否決。將標題更改爲@soon建議的內容可能會有所幫助。 –