2013-10-24 4 views
3

Итак, у меня есть список кортежей, подобных этому xs = [(«a», «b»), («a», «c»), («b», «d») ], и я хочу создать функцию, которая получает этот список чисел и элемент 'a', и возвращает то, что находится во вторых положениях кортежей, где это 'a' - первый элемент. В приведенном выше примере, если функция получила список хз и букву «а» он должен вернуться: [ «B», «C»]Работа с кортежами в Haskell

ответ

6
lookupAll :: Eq a => a -> [(a, b)] -> [b] 
lookupAll x pairs = [b | (a, b) <- pairs, a == x] 
+1

или Mappy путь, 'lookupAll = карта СНД. : фильтр. (fst). (==) ' – jozefg

+0

Я стараюсь избегать точек, когда RHS длиннее. –

+0

Достаточно честный, я просто подумал, что стоит того, чтобы подумать, что это был не совсем ответ. – jozefg

Смежные вопросы