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

A variável p é um novo processo, que recebe um número x em uma mensagem,<br />

calcula 2 x e envia para s:<br />

( define p<br />

( spawn<br />

( lambda ()<br />

(! s ( expt 2 ())))))<br />

Se uma mensagem for enviada a p <strong>com</strong> o número 10,<br />

(! p 10)<br />

()<br />

1024<br />

O processo que enviou a mensagem pode receber 2 10 <strong>com</strong>o resposta:<br />

Este processo, no entanto, tratará uma única mensagem. Para que o processo responda<br />

a muitas mensagens podemos usar um loop 4 :<br />

( define p<br />

( spawn<br />

(! p 16)<br />

(! p 32)<br />

()<br />

65536<br />

()<br />

( lambda ()<br />

4294967296<br />

( let loop ()<br />

(! s ( expt 2 ())) ( loop )))))<br />

Um argumento extra para indica o tempo máximo que se deve esperar pela mensagem.<br />

Depois que este tempo se esgotar, uma exceção será levantada se nenhuma<br />

mensagem tiver chegado.<br />

4 O modelo actor, <strong>com</strong>o descrito por Agha [4], não precisa disto: o processo volta a responder mensagens após<br />

processar uma delas.<br />

Versão Preliminar<br />

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