Haskell: Сравните логические значения в кортежах, созданных с помощью zip - PullRequest
0 голосов
/ 05 марта 2019

Я новичок в Haskell.То, что я хочу сделать, - это операция XOR: я получаю 2 логических списка и архивирую их, получая список кортежей логических выражений.Теперь я хочу сравнить элементы внутри кортежей.

EG

list1 = [true,true,false]

list2 = [true,false,false]

list 3 = zip list1 list2 

Теперь из этого списка я хочу получить список list4 = [false, true, false].так что если в кортеже в списке есть истина и ложь, в списке решений это будет истина, иначе ложь.Как я могу это сделать?

1 Ответ

1 голос
/ 05 марта 2019

Как заметил @Alec выше, то, что вы хотите, выглядит как функция zipWith:

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

Это даст вам [False, True, False] в GHCI. Если вы хотите использовать map, то вы бы сделали что-то вроде этого:

list1 = [True, True, False]
list2 = [True, False, False]
list3 = zip list1 list2
list4 = map (\(x, y) -> x /= y) list3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...