Ir para o conteúdo
phplove

map , filter , foldr.foldl

Mensagens Recomendadas

phplove    0
phplove

Boas malta eu so novo nesta andansas e gostava de seber com e  que fumcionao e para que serve as funcoes de orde suprior , map , filter , foldr.foldl

obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

O map aplica uma função a todos os elementos de uma lista.

O filter filtra os elementos de uma lista que verificam uma determinada propriedade.

O foldr e foldl aplicam recursivamente uma operação sobre uma lista.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

sim mas como é que funciona internamente ?  sera que dava para dar um exemplo com explicaçao?

map odd [1,2,3,4,5] vai devolver [ True,False,True,False,True], pois aplicou a função que testa se os elementos da lista são pares ou ímpares.

Se em vez do map usares o filter, vai ter como resultado 1,3,5, pois apenas ficam os valores que verifiquem a condição de serem ímpares.

Para os folds, faz uma pesquisa no fórum, que já há por aí informação.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Jpab    0
Jpab

repara nas funçoes:

-----------------------------------------
map :: (a -> b) -> [a] -> [b]
map f [] = []
map f (x:xs) = (f x) : (map f xs)
------------------------------------------------
filter :: (a -> Bool) -> [a] -> [a]
filter p [] = []
filter p (x:xs) 
                   | (p x) = x : (filter p xs)
                   | otherwise = filter p xs
--------------------------------------------
foldr :: (a -> b -> b) -> b -> [a] -> b
foldr f z [] = z
foldr f z (x:xs) = f x (foldr f z xs)
--------------------------------------------
foldl :: (a -> b -> a) -> a -> [b] -> a
foldl f z [] = z
foldl f z (x:xs) = foldl f (f z x) xs
-------------------------------------------------
--para entenderes melhor a difrença entre estas duas ultimas ve estes exemplos:

foldr (-) 8 [4,7,3,5] =>4 ( - 7 ( - 3 (5 -  8))) =>3
foldl (-) 8 [4,7,3,5] => (((8 - 4) -7) -3) -5 =>-11
-----------------------------------------

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade