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

b.2.1<br />

Controle e ambiente<br />

(and test1 ...)<br />

(Forma especial) Avalia as formas uma a uma, parando quando uma delas resultar em #f.<br />

O valor da forma and é o “e” lógico dos testes.<br />

(apply proc args)<br />

Aplica proc <strong>com</strong> a lista de argumentos args. Seção 1.8 e Capítulo 6.<br />

(begin form1 ...)<br />

(Forma especial) Avalia as formas em ordem e retorna o valor da última.<br />

(boolean obj)<br />

Verifica se o objeto obj é booleano.<br />

(call/cc proc)<br />

(call-with-current-continuation proc)<br />

Chama o procedimento proc, que deve aceitar um único argumento (a continuação<br />

corrente). O procedimento proc poderá chamar a continuação corrente, que é aquela de<br />

quando call-with-current-continuation foi chamado. A versão curta, call/cc, só será<br />

definida oficialmente no padrão R 7 RS. Capítulo 8.<br />

(call-with-values f g)<br />

Chama f (que não deve receber argumentos) e usa seus valores de retorno <strong>com</strong>o parâmetro<br />

para chamar g. Seção 1.8.<br />

(case key clause1 ...)<br />

(Forma especial) Cada cláusula é da forma (lst form1 ...) ou (else form1 ...). A<br />

chave será buscada em cada lista lst; quando for encontrada, as formas à frente da lista<br />

serão avaliadas. A cláusula else sempre causa a avaliação de suas formas. As cláusulas<br />

são verificadas na ordem, e somente uma é escolhida para avaliação. Capítulo 1.<br />

(cond clausula1 clausula2 ... [ clausula-else ])<br />

(Forma especial) Cada cláusula é uma lista cujo primeiro elemento é um teste. Os outros<br />

elementos são formas a serem avaliadas se o teste não retornar #f. Os testes são avaliados<br />

na ordem em que aparecem, e apenas uma cláusula é escolhida para avaliação. A<br />

clausula-else tem a forma (else forma1 forma2); as formas da cláusula else serão<br />

avaliadas se nenhuma outra for. Se não há else e todos os testes resultam em #f, cond<br />

Versão Preliminar<br />

não retorna valores.<br />

(define nome expr)<br />

(define (nome args) corpo)<br />

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

319

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

Saved successfully!

Ooh no, something went wrong!