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

Uma exposição mais <strong>com</strong>pleta é dada por Gentle [15]. Knuth [16] também aborda o tema.<br />

Geradores de números aleatóreos para Criptografia devem satisfazer requisitos diferentes;<br />

o livro de Stinson [17] traz uma exposição básica do assunto.<br />

1.4 variáveis locais<br />

Da mesma forma que os argumentos de um procedimento podem ser usados apenas<br />

dentro do corpo do procedimento, é possível criar variáveis temporárias acessíveis apenas<br />

dentro de um trecho de programa <strong>Scheme</strong> usando a forma especial let.<br />

( let ((a 3)<br />

12<br />

a<br />

(b 4))<br />

(* a b))<br />

ERROR: unbound variable a<br />

Tanto a <strong>com</strong>o b são visíveis apenas dentro da forma let (dizemos que este é o escopo<br />

destas variáveis) – por isso não pudemos usar a fora do let e o REPL nos mostrou uma<br />

mensagem de erro.<br />

A forma a seguir cria duas variáveis, nome e sobrenome, que são visíveis apenas dentro<br />

de seu corpo:<br />

( let (( nome " Gustav ")<br />

( sobrenome " Klimt "))<br />

( string-append nome " " sobrenome ))<br />

Gustav Klimt<br />

nome<br />

Error: unbound variable: nome<br />

Versão Preliminar<br />

O procedimento string-append usado neste exemplo recebe várias strings e retorna<br />

a concatenação delas.<br />

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