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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Na seção 1.6.2 construimos um pequeno programa que aproxima a razão áurea.<br />

Podemos encarar a série de aproximações <strong>com</strong>o uma stream.<br />

Cada vez que um novo elemento da stream deve ser calculado usaremos next-phi:<br />

( define next-phi<br />

( lambda ( valor )<br />

(+ 1 (/ 1 valor ))))<br />

A stream inicia <strong>com</strong> 2.0; usamos stream-map para determinar <strong>com</strong>o o resto da stream<br />

é construída.<br />

( define phi-stream<br />

( lambda ()<br />

( define approx-stream<br />

( stream-cons 2.0<br />

approx-stream ))<br />

( stream-map next-phi approx-stream )))<br />

O procedimento phi-stream retorna a stream de aproximações, e podemos usar<br />

stream-take para extrair partes dela.<br />

(define phi-approx (phi-stream))<br />

(stream-take phi-approx 10)<br />

(2.0<br />

1.5<br />

1.6666666666666665<br />

1.6<br />

1.625<br />

1.6153846153846154<br />

1.619047619047619<br />

1.6176470588235294<br />

1.6181818181818182<br />

1.6179775280898876)<br />

Versão Preliminar<br />

9.4 estruturas de dados <strong>com</strong> custo amortizado<br />

(esta seção é um rascunho)<br />

[ 27 de outubro de 2010 at 15:47 ]<br />

223

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

Saved successfully!

Ooh no, something went wrong!