26 de outubro de 2000
Prof. João Meidanis
Questão 1 (valor 2,5)
Escreva uma função intercala
em LISP que recebe duas
listas de mesmo tamanho e retorna uma lista onde o primeiro elemento
vem da primeira lista, o segundo da segunda, o terceiro novamente da
primeira, e assim por diante, intercalando os elementos da primeira e
da segunda listas mas mantendo a ordem que tinham. A lista resultante
terá duas vezes o tamanho das listas iniciais. Eis um exemplo de
funcionamento desta função:
> (intercala '(a b c) '(x y z)) (A X B Y C Z).
Questão 2 (valor 2,0)
Desenhe a representação gráfica das S-expressões abaixo:(((A . B). C).(A . (C . B))) ((A) B (C D) ((E) F))
Questão 3 (valor 2,5)
Já que estamos falando de representação gráfica, escreva uma funçãoncaixas
em LISP que recebe uma
S-expressão e retorna o número de "caixas" que aparecerão
em sua representação gráfica. Por exemplo:
> (ncaixas '(a (b) c)) 4
Questão 4 (valor 3,0)
Suponha que estejamos representando polinômios em LISP através de listas contendo seus coeficientes. O primeiro elemento da lista é o termo independente, o segundo é o coeficiente de x, e assim por diante. O polinômio 3x2 + 7x - 2 seria então(-2 7 3)
. O polinômio x5 - 1 seria
(-1 0 0 0 0 1)
. Observe que os termos de maior grau
vêm mais para o fim da lista. Escreva uma função
prod
em LISP que recebe dois polinômios e retorna seu
produto.
Boa Sorte!