08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notas de aula - Jerônimo C. Pellegrini<br />

• Quarto: 12<br />

O primeiro elemento foi avaliado e o resultado é um procedimento:<br />

( lambda (v i t)<br />

(* v ( expt (+ 1.0 i) t )))<br />

#<br />

Em seguida, os outros elementos foram avaliados e passados <strong>com</strong>o argumento para o<br />

procedimento.<br />

Outra coisa que pode ser feita <strong>com</strong> um procedimento é definí-lo <strong>com</strong>o conteúdo<br />

de uma variável (ou seja, dar a ele um nome) para que não seja necessário digitá-lo<br />

novamente mais tarde:<br />

( define juros-<strong>com</strong>postos<br />

( lambda (v i t)<br />

(* v ( expt (+ 1.0 i) t ))))<br />

Agora podemos usar este procedimento. O próximo exemplo mostra seu uso para<br />

verificar a diferença entre duas taxas de juros (2% e 1.8%):<br />

(juros-<strong>com</strong>postos 5000 0.02 12)<br />

6341.20897281273<br />

(juros-<strong>com</strong>postos 5000 0.018 12)<br />

6193.60265787764<br />

Como um procedimento em <strong>Scheme</strong> é um valor qualquer (assim <strong>com</strong>o números,<br />

caracteres e strings), nada impede que se faça a cópia de uma variável cujo conteúdo seja<br />

um procedimento:<br />

juros-<strong>com</strong>postos<br />

#<br />

(define jc juros-<strong>com</strong>postos)<br />

(jc 9000 0.03 24)<br />

18295.1469581436<br />

Versão Preliminar<br />

Este último exemplo mostra também que uma taxa de juros de 3% ao mês é suficiente<br />

para dobrar o valor de uma dívida em dois anos.<br />

10<br />

[ 27 de outubro de 2010 at 15:47 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!