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

Jerônimo C. Pellegrini<br />

( newline )))<br />

Estes procedimentos permitem escrever linhas de uma só vez:<br />

( define film-status caadr )<br />

( define film-title car )<br />

( define film-place cadadr )<br />

( define where-is<br />

( lambda ( title db)<br />

( let ((x ( assoc title db )))<br />

( cond (( not x)<br />

( print-line "Não encontrei o filme " title ))<br />

(( eqv ’ emprestado ( film-status x))<br />

( print-line "O filme " title<br />

" est á emprestado para "<br />

( else<br />

( film-place x )))<br />

( print-line "O filme " title<br />

" est á na estante "<br />

( film-place x )))))))<br />

(where-is "Era uma vez no oeste" d)<br />

O filme Era uma vez no oeste está na estante b3<br />

(where-is "Fahrenheit 451" d)<br />

O filme Fahrenheit 451 está emprestado para John Doe<br />

(falta aqui um exemplo uso de display em um arquivo)<br />

Versão Preliminar<br />

2.1.1 Portas de strings<br />

(esta seção está in<strong>com</strong>pleta)<br />

R 7 RS,<br />

SRFI-6<br />

Além de ler e escrever de arquivos, é possível criar portas para ler e escrever em<br />

strings, <strong>com</strong>o se fossem arquivos. O procedimento open-input-string recebe um único<br />

parâmetro (uma string) e retorna uma porta de entrada a partir dessa string:<br />

( define in-string " 100 200 ")<br />

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

65

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

Saved successfully!

Ooh no, something went wrong!