Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Exercício com fold

$
0
0
Para efeitos de documentação (uma vez que creio que o problema já não exista devido à ausência de feedback), deixo aqui uma solução, usando as 2 vertentes do fold: type Expansion a = [a] type Rule a = (a,Expansion a) type Rules a = [Rule a] regras :: Rules Int regras = [(1,[2,1]),(2,[0,2,1])] getExpansion :: Eq a => Rules a -> a -> [a] getExpansion [] x = [x] getExpansion ((el,exp):rs) x | el==x = exp | otherwise = getExpansion rs x getExpansionFoldr :: Eq a => Rules a -> a -> [a] getExpansionFoldr rs x = foldr (\(el,exp) y -> if (el==x) then exp else y) [x] rs getExpansionFoldl :: Eq a => Rules a -> a -> [a] getExpansionFoldl rs x = foldl (\y (el,exp) -> if (el==x) then exp else y) [x] rs Mais sobre foldr e foldl aqui:

Viewing all articles
Browse latest Browse all 11336

Trending Articles