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

(substring "paulatinamente"3 9)<br />

”latina”<br />

3.5 vetores<br />

Vetores são estruturas que mapeiam índices numéricos em objetos. Os objetos em um<br />

vetor podem ser de tipos diferentes.<br />

Vetores constantes são representados em código <strong>Scheme</strong> da mesma forma que listas,<br />

exceto que o símbolo # é usado antes dos parênteses de abertura:<br />

(quote (uma lista))<br />

(uma lista)<br />

(quote #(um vetor))<br />

#(um vetor)<br />

O procedimento make-vector cria vetores <strong>com</strong> tamanho fixo:<br />

(define v (make-vector 5))<br />

Podemos passar um terceiro elemento para make-vector, que será usado <strong>com</strong>o um<br />

valor inicial para todos os elementos do vetor.<br />

Os procedimentos vector-ref e vector-set! são usados para ler e escrever em<br />

posições específicas de um vetor. O acesso a cada posição leva tempo constante (ao<br />

contrário do acesso ao n-ésimo elemento de uma lista, que normalmente leva tempo<br />

proporcional ao tamanho da lista).<br />

(vector-set! v 0 10)<br />

v<br />

#(10 )<br />

(vector-ref v 0)<br />

10<br />

Há um procedimento vector->list que transforma vetores em listas, e outro, list->vector,<br />

que faz a operação oposta.<br />

Versão Preliminar<br />

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

97

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

Saved successfully!

Ooh no, something went wrong!