2016-03-18 67 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一个特例,它允许程序员提供自己的平等的测试。

相关问题