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 />

global<br />

retorna-procedimento<br />

proc<br />

uma-variavel -> 1000<br />

(lambda () uma-variavel)<br />

(lambda ()<br />

(let ((uma-variavel 1000))<br />

(lambda () uma-variavel)))<br />

Os retângulos são quadros; os procedimentos são representados pelos objetos <strong>com</strong><br />

cantos arredondados, tendo no lado esquerdo a definição do procedimento e no lado<br />

direito uma referência ao ambiente que deve ser usado quando o procedimento for<br />

aplicado. As linhas contínuas definem vínculos de variáveis e as linhas tracejadas mostram<br />

a hierarquia de quadros.<br />

O procedimento faz-contador retorna três fechos, que usam uma variável local de<br />

faz-contador:<br />

( define faz-contador<br />

( lambda ()<br />

( let (( valor 0))<br />

( list ( lambda ()<br />

valor )<br />

( lambda ()<br />

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

( lambda ()<br />

( set ! valor (- valor 1)))))))<br />

Versão Preliminar<br />

103<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!