Búsqueda en lista de listas de pares
Enunciado
1 2 3 4 5 6 |
-- Definir la función -- busca :: Eq a => a -> [[(a,b)]] -> [b] -- tal que (busca x pss) es la lista de los segundos componentes de los -- pares de la lista de listas de pares pss cuya primera componentes es -- x. Por ejemplo, -- busca 3 [[(3,4)],[(5,4),(3,2),(3,5)],[(4,1),(7,3)]] == [4,2,5] |
Soluciones
1 2 3 4 5 6 7 |
-- 1ª solución: busca :: Eq a => a -> [[(a,b)]] -> [b] busca x pss = [y | ps <- pss, (z,y) <- ps, z == x] -- 2ª solución: busca2 :: Eq a => a -> [[(a,b)]] -> [b] busca2 x pss = [y | (z,y) <- concat pss, z == x] |
3 Comentarios