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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

notas de aula - Jerônimo C. Pellegrini<br />

entanto, aplicações de escopo dinâmico – por exemplo, a implementação de sistemas para<br />

suporte a programação orientada a aspectos[22].<br />

exercícios<br />

Ex. 40 — Escreva um procedimento remove! que receba um elemento, uma lista e remova<br />

o elemendo da lista, modificando-a.<br />

Ex. 41 — Escreva um procedimento append! que receba várias listas e as concatene,<br />

alterando o último cdr de cada uma para que aponte para a próxima lista.<br />

Ex. 42 — Mostre que make-circular! poderia ser trivialmente construído usando o<br />

procedimento append! do Exercício 41.<br />

Ex. 43 — Escreva um procedimento list-set! que receba uma lista, um elemento, uma<br />

posição e troque o elemento naquela posição, modificando a lista.<br />

Ex. 44 — Escreva um procedimento string-map! que modifique cada caracter de uma<br />

string aplicando um pocedimento, da mesma forma que map! para listas.<br />

Ex. 45 — Faça um procedimento faz-ciclo que receba uma lista de procedimentos<br />

procs e devolva um procedimento que devolve um dos procedimentos na lista procs (eles<br />

devem ser devolvidos em ordem, e quando chegar ao último voltar ao primeiro):<br />

( let (( ciclo ( faz-ciclo + - * /)))<br />

( let ((a 5)<br />

(b 2))<br />

( let loop ((i 0))<br />

(if (< i 4)<br />

( let (( op ( ciclo )))<br />

( display (op a b))<br />

( newline ))))))<br />

Versão Preliminar<br />

7<br />

3<br />

10<br />

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