获取仅出现在其中一个列表中的项目列表

时间:2015-10-26 17:29:37

标签: haskell

假设我有两个列表

lis1 = ["e", "g", "t"] 
lis2 = ["e", "h", "g"]

在将lis1和lis2作为我的参数后如何返回lis3?

lis3 = ["t", "h"]

1 个答案:

答案 0 :(得分:2)

我认为我会采用的方式是

  • x = lis1lis2
  • 的交集
  • a = lis1x
  • 的差异
  • b = lis2x
  • 的差异
  • 结果是a concat b

这是一个快速演示

import Data.List

let x = [1,2,3] `intersect` [2,3,4]
=> [2,3]

let a = [1,2,3] \\ x
=> [1]

let b = [2,3,4] \\ x
=> [4]

a ++ b
=> [1,4]

此演示使用数字,但它与字符或字符串的工作方式相同。