Você está aqui: LISP ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Escreva um programa LISP que duplica os elementos de uma lista usando uma função recursiva chamada duplicar_elementos() - Exercícios Resolvidos de LISPQuantidade de visualizações: 290 vezes |
Pergunta/Tarefa: Dada a lista de inteiros (1 2 3 4 5 6 7 8) Escreva um programa LISP que duplica os elementos desta lista usando uma função recursiva chamada duplicar_elementos(). Esta função deverá receber a lista original e retornar uma nova lista contendo os elementos duplicados. Sua saída deve ser parecida com: A lista original é: (1 2 3 4 5 6 7 8) A nova lista é: (1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8) Veja a solução comentada deste exercício usando a linguagem Common Lisp (a padronização da LISP): ; vamos criar uma função recursiva que duplica os elementos ; de uma lista e retorna a nova lista (defun duplicar_elementos(lista) ; a lista está vazia? (if (eql lista nil) nil ; efetua mais uma chamada recursiva (append (list (car lista) (car lista)) (duplicar_elementos (cdr lista)))) ) (let (lista) ; vamos criar uma nova lista (setq lista '(1 2 3 4 5 6 7 8)) ; vamos mostrar o conteúdo da lista original (format t "A lista original é: ~D" lista) |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de LISP |
Veja mais Dicas e truques de LISP |
Dicas e truques de outras linguagens |
Excel - Como converter graus em radianos no Excel usando a função RADIANOS() - Trigonometria no Excel Delphi - Como calcular o coeficiente angular de uma reta em Delphi dados dois pontos no plano cartesiano |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |