我是Haskell的新手,需要一个函数来交叉两个列表,但是删除了双元素。
如果我加载Data.List
import Data.List
我可以使用这个功能:
intersect "abbcd" "abbe"
"abb"
结果是“abb”,但我需要的是:
intersectFunction "abbcd" "abbe"
"ab"
所以列表中的double char只能显示一次。
有什么想法吗?
答案 0 :(得分:3)
您可以使用您拥有的intersect
功能,但之后需要删除重复的元素。似乎有一个库函数可以做到这一点,但是如果我们不知道这个名字怎么能找到呢?
回答“是否存在Haskell函数来执行X”形式的问题的最佳方法通常是:
答案 1 :(得分:2)
也许名为 nub 的“唯一”函数可以提供帮助:
import Data.List
intersectFunction a b = nub $ intersect a b