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

( eval-seq ( cdr exp ) env )))))<br />

O procedimento eval# é mostrado a seguir.<br />

( define eval #<br />

( lambda ( exp env )<br />

( cond (( auto-eval exp )<br />

exp )<br />

(( var exp )<br />

( find-in-env exp env ))<br />

(( is-a exp ’def )<br />

( do-def ! exp env ))<br />

(( is-a exp ’set !)<br />

( do-set ! exp env ))<br />

(( is-a exp ’quote )<br />

( cadr exp ))<br />

(( is-a exp ’if)<br />

( do-if exp env ))<br />

(( is-a exp ’lambda )<br />

( make-proc exp env ))<br />

(( is-a exp ’begin )<br />

( eval-seq ( cdr exp ) env ))<br />

(( proc exp )<br />

( apply # ( eval # ( car exp ) env )<br />

( else<br />

( cdr exp )<br />

env ))<br />

Versão Preliminar<br />

( error " Eval não sabe o que fazer <strong>com</strong> " exp )))))<br />

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

151

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

Saved successfully!

Ooh no, something went wrong!