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

mento get-linear-congruential recebe uma semente e retorna um gerador de números<br />

aleatóreos que pode ser chamado sem argumentos:<br />

( define get-linear-congruential<br />

( lambda ( seed )<br />

( let (( next seed ))<br />

( lambda ()<br />

( let ((n ( linear-congruencial next<br />

( set ! next n)<br />

next )))))<br />

1103515245<br />

12345<br />

( expt 2 32))))<br />

( define next-random ! ( get-linear-congruential 1111))<br />

Ao dar nome ao gerador retornado por get-linear-congruential usamos o sinal<br />

! porque de fato, cada vez que for aplicado o procedimento next-random! modificará o<br />

valor de uma variável.<br />

3.6.3 Um micro sistema de objetos<br />

No paradigma de programação orientada a objetos, a idéia central é modelar o mundo<br />

<strong>com</strong>o objetos e organizá-los em classes. Cada objeto de uma mesma classe tem os mesmos<br />

atributos (variáveis locais, que somente são visíveis dentro do objeto) e objetos interagem<br />

trocando mensagens. Cada objeto tem uma lista de mensagens que pode responder – para<br />

cada mensagem ele implementa um método.<br />

As variáveis que fechos <strong>Scheme</strong> “carregam” são semelhantes aos atributos de objetos.<br />

Para implementar um sistema de objetos simples em <strong>Scheme</strong> <strong>com</strong> fechos são necessários<br />

dois procedimentos:<br />

• Um para criar um objeto de uma classe;<br />

• Um para enviar uma mensagem a um objeto.<br />

Versão Preliminar<br />

O exemplo a seguir mostra <strong>com</strong>o um objeto host pode ser criado. O procedimento que<br />

cria o objeto é específico (não há ainda um define-class), mas ilustra o funcionamento<br />

do mecanismo.<br />

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