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

( syntax-rules ()<br />

((_ fun )<br />

( set ! fun ( with-trace ’fun fun )))))<br />

find.<br />

Agora podemos acmopanhar as chamadas de um procedimento usando a macro<br />

(trace find)<br />

(find ’a ’(x y z a b c))<br />

7.9 casamento de padrões<br />

exercícios<br />

Ex. 69 — Reescreva o jogo de poquer descrito nos Capítulos anteriores usando define-structure.<br />

Ex. 70 — Escreva uma macro xnor, que é semelhante a xor exceto que o primeiro argumento<br />

é o número de formas que devem ser verdadeiras.<br />

( xnor 2 #f #f ’a ’b #f) ==> #t<br />

( xnor 3 #f #f ’a ’b #f) ==> #f<br />

( xnor 1 #f 1 #f) ==> #t<br />

Ex. 71 — Faça uma macro que permita escrever Lisp em notação posfixa. Um exemplo<br />

de uso:<br />

((y x +) 2 *) deve ser expandido para (* 2 (+ x y))<br />

Ex. 72 — Imagine uma função que mude o valor de uma variável para #f:<br />

( define faz-falso !<br />

( lambda (x)<br />

( set ! x #f )))<br />

Versão Preliminar<br />

Porque ela não funciona Como conseguir que (faz-falso! variavel) funcione de<br />

forma correta<br />

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