Seguinte: Listas de Argumentos Acima: Listas Anterior: Operações sobre Listas
Índice remissivo

Funções Úteis

Exercício 42

Escreva uma função n-esimo que devolva o n-ésimo elemento de uma lista. Note que o primeiro elemento da lista corresponde a n igual a zero.

Resposta

Exercício 43

Escreva uma função muda-n-esimo que recebe um número n, uma lista e um elemento, e substitui o n-ésimo elemento da lista por aquele elemento. Note que o primeiro elemento da lista corresponde a n igual a zero.

Resposta

Exercício 44

Escreva uma função que calcula o comprimento de uma lista, i.e., determina quantos elementos ela tem.

Resposta

Exercício 45

Escreva uma função que recebe um elemento e uma lista que contém esse elemento e devolve a posição desse elemento na lista.

Resposta

Exercício 46

Escreva uma função que calcula o número de átomos que uma lista (possivelmente com sublistas) tem.

Resposta

Exercício 47

Escreva uma função junta que recebe duas listas como argumento e devolve uma lista que é o resultado de as juntar uma à frente da outra.

Resposta

Exercício 48

Defina uma função inverte que recebe uma lista e devolve outra lista que possui os mesmos elementos da primeira só que por ordem inversa.

Resposta

Exercício 49

Escreva uma função designada inverte-tudo que recebe uma lista (possivelmente com sublistas) e devolve outra lista que possui os mesmo elementos da primeira só que por ordem inversa, e em que todas as sublistas estão também por ordem inversa, i.e.:

> (inverte-tudo '(1 2 (3 4 (5 6)) 7))
(7 ((6 5) 4 3) 2 1)

Resposta

Exercício 50

Escreva uma função mapear que recebe uma função e uma lista como argumentos e devolve outra lista com o resultado de aplicar a função a cada um dos elementos da lista.

Resposta

Exercício 51

Escreva uma função denominada alisa que recebe uma lista (possivelmente com sublistas) como argumento e devolve outra lista com todos os átomos da primeira e pela mesma ordem, i.e.

> (alisa '(1 2 (3 4 (5 6)) 7))
(1 2 3 4 5 6 7)

Resposta

Exercício 52

Escreva uma função membro? que recebe um objecto e uma lista e verifica se aquele objecto existe na lista.

Resposta

Exercício 53

Escreva uma função elimina que recebe um elemento e uma lista como argumentos e devolve outra lista onde esse elemento não aparece.

Resposta

Exercício 54

Escreva uma função substitui que recebe dois elementos e uma lista como argumentos e devolve outra lista com todas as ocorrências do segundo elemento substituídas pelo primeiro.

Resposta

Exercício 55

Escreva uma função remove-duplicados que recebe uma lista como argumento e devolve outra lista com todos os elementos da primeira mas sem duplicados, i.e.:

> (remove-duplicados '(1 2 3 3 2 4 5 4 1))
(3 2 5 4 1)

Resposta

Exercício 56

Escreva as funções inversas do cons, car e cdr, designadas snoc, rac e rdc. O snoc recebe um elemento e uma lista e junta o elemento ao fim da lista. O rac devolve o último elemento da lista. O rdc devolve todos os elementos da lista menos o primeiro.

Resposta

Exercício 57

As funções todos?, algum?, nenhum? e nem-todos? são predicados que recebem uma função e uma lista e verificam, respectivamente, se a função é verdade para todos os elementos da lista, se é verdade para pelo menos um, se não é verdade para todos e se não é verdade para pelo menos um. Defina estas funções.

Resposta


Seguinte: Listas de Argumentos Acima: Listas Anterior: Operações sobre Listas
Índice remissivo

Copyright António Leitão, 1995