Haskell:比较使用zip创建的元组中的布尔值

时间:2019-03-05 15:30:35

标签: haskell functional-programming

我是Haskell的新手。 我想做的是XOR操作: 我得到2个布尔值列表,然后将它们压缩,得到布尔值元组的列表。 现在,我想比较一下小礼堂里面的元素。

E.G。

list1 = [true,true,false]

list2 = [true,false,false]

list 3 = zip list1 list2 

现在我要从该列表中获取列表list4 = [false,true,false]。因此,如果列表中的元组中包含true和false,则在解决方案列表中将为true,否则为false。我该怎么办?

1 个答案:

答案 0 :(得分:1)

如@Alec上面所述,看起来像zipWith函数一样。

list1 = [True, True, False]
list2 = [True, False, False]
list4 = zipWith (/=) list1 list2

这将为您提供ghci [False, True, False]。如果您想使用map,则可以执行以下操作:

list1 = [True, True, False]
list2 = [True, False, False]
list3 = zip list1 list2
list4 = map (\(x, y) -> x /= y) list3