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

--> 1 2<br />

A função será chamada <strong>com</strong> cada par de números da <strong>com</strong>binação.<br />

Este procedimento é definido facilmente se você pensar de maneira indutiva.<br />

Mostre, por indução, que o procedimento realmente chamará a função que recebe <strong>com</strong>o<br />

parâmetro <strong>com</strong> todas as ( n<br />

k)<br />

<strong>com</strong>binações de índices, <strong>com</strong> os índices variando entre 0 e<br />

n − 1.<br />

Ex. 21 — Refaça o exercício 20 em C e Java.<br />

Ex. 22 — O procedimento o que faz <strong>com</strong>posição de funções (na Seção 1.8) para que aceite<br />

um número arbitrário de funções. Por exemplo,<br />

•(o) deve retornar (lambda () (values));<br />

•(o f) deve retornar f;<br />

•(o f g h) deve retornar f ◦ g ◦ h.<br />

Ex. 23 — Releia a função o que faz <strong>com</strong>posição de funções (na Seção 1.8). (o o o) dá<br />

<strong>com</strong>o resultado um procedimento:<br />

(define ooo (o o o))<br />

ooo<br />

#<br />

Diga se o procedimento ooo faz sentido (se é possível usá-lo). Se ooo não fizer sentido,<br />

explique exatamente porque; se fizer, diga o que ele faz e mostre um exemplo de uso.<br />

Ex. 24 — O framework para testes unitários da Seção 1.9.1 sempre usa equal para<br />

verificar o resultado de testes. Modifique-o para que ele receba <strong>com</strong>o último parâmetro,<br />

opcional, um procedimento que verifica igualdade<br />

Ex. 25 — Modifique o framework para testes unitários da Seção 1.9.1 para que ele funcione<br />

<strong>com</strong> procedimentos que retornam múltiplos valores.<br />

Versão Preliminar<br />

Ex. 26 — Modifique o procedimento assoc/default para que ele receba um procedimeno<br />

a ser usado para <strong>com</strong>parar as chaves, de forma que possamos usar outros procedimentos<br />

além de equal.<br />

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