2016-03-18 64 views

回答

6

您正在尋找的(\\)功能:

[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一個特例,它允許程序員提供自己的平等的測試。

相關問題