Ferramentas do usuário

Ferramentas do site


temas:programacao:fp

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão Ambos lados da revisão seguinte
temas:programacao:fp [2015/10/11 20:17]
phil [3) Recursividade é sua jeito de navegar dentro as estruturas]
temas:programacao:fp [2015/10/11 20:39]
phil [4) Funções são cidadãos do primeiro classe]
Linha 161: Linha 161:
 ==== 4) Funções são cidadãos do primeiro classe ==== ==== 4) Funções são cidadãos do primeiro classe ====
  
-...+    (define (mult2 x) (* 2 x)) 
 + 
 +Podemos passar elas como argumentos : 
 +     
 +    (define (mymap f xs)  
 +      (if (empty? xs) '() 
 +          (cons (f (car xs)) (mymap f (cdr xs))))) 
 + 
 +    (mymap mult2 '(1 2 3 4 5)) 
 + 
 +Podemos produzir elas utilizando "curry" pra "customizar" funções que já existe : 
 + 
 +    (mymap (curry * 2) '(1 2 3 4 5)) 
 + 
 +Como nos queremos passar muitos pequenos funções como argumentos para outros funções, temos a capacidade definir funções anônimos com a "lambda". 
 + 
 +    (mymap (lambda (x) (* x 3)) '(1 2 3 4 5)) 
 +         
 +A biblioteca padrão contem varias funções pra tratar listas com outras funções 
 + 
 +    (map (curry * 4) '(1 2 3 4 5)) 
 + 
 +    (filter (lambda (x) (< x 5)) (range 10)) 
 + 
 +    (foldr (lambda (a b) (* a b)) 1 '(1 2 3 4 5)) 
 +     
 +=== Exerciso 5.=== 
 + 
 +Escrever o função que somar as números par dentro uma lista utilizando estas funções do biblioteca padrão. 
 + 
 +Escrever sua própria versão de filter  
  
 ===== E agora, vamos brincar ===== ===== E agora, vamos brincar =====
temas/programacao/fp.txt · Última modificação: 2017/04/26 20:45 por phil