【发布时间】:2019-11-22 11:16:18
【问题描述】:
这是我要解决的问题:
两个列表 [1,2,3,4] [2,2,3,4] 将变为 [2,3,4] ,因为索引位置为零的元素不相等。因此,比较元素的索引是否相等。您可以假设等长列表作为输入。
所以我创建了一个用递归解决这个问题的函数:
oneHelper :: (Eq t) => [t] -> [t] -> [t]
oneHelper [] [] = []
oneHelper (x:xs) (y:ys) = if x == y then [x] ++ oneHelper xs ys
else oneHelper xs ys
然后我尝试用这样的列表理解来解决它:
test a b = [x | x <- a, y <- b, x == y]
这只是给了我[2,2,3,4],上面使用了示例输入。我觉得有一种通过列表理解来解决这个问题的巧妙方法,或者只是比我提出的一般解决方案更简洁的方法,但我正在努力实现该解决方案。有没有人看到比我为这个问题所做的更好的东西?
谢谢
【问题讨论】:
标签: haskell