jueves, 15 de diciembre de 2011

Ejercicios de LISP

 

Ejercicio # 1

1. Descripción

Crear una función que dada una lista de como resultado una nueva lista pero solo con el primer y último elemento de la lista original.

2. Solución

  • (defun ult (a) (if (cdr a) (ult (cdr a)) a))
  • (defun ejer (a) (list (car a) (car (ult a))) )

3. Ejecución

image

Ejercicio # 2

1. Descripción

Crear una función recursiva que dad una lista como parámetro retorne la sumatoria de todos sus elementos.

2. Solución

  • (defun sum (a) (setq R 0) (suma a))
  • (defun suma (a) (setq R (+ R (car a))) (if (cdr a) (suma (cdr a)) R))

3. Ejecución

image

Ejercicio # 3

1. Descripción

Crear una función que permita realizar la suma de matrices.

2. Solución

  • (defun recorre (a b)

(print (mapcar #'+ (car a) (car b)))

(if (cdr a) (recorre (cdr a) (cdr b))) 'FIN )

3. Ejecución

image

Ejercicio # 4

1. Descripción

Crear una función en LISP que permita realizar suma de listas pares.

(suma_pares ‘((1 2) (3 4) (5 6) (7 8))

(4 6) (13 14)

2. Solución

  • (defun ejer (a)

(print (mapcar #'+ (car a) (cadr a)))

(if (cddr a) (ejer (cddr a)) 'FIN))

3. Ejecución

image

Ejercicio # 5

1. Descripción

Defina una función llamada “enésimo” en donde dada un número ‘n’ y una lista. Elimine el enésimo termino de lista

2. Solución

  • (defun enesimo (n a)

(setq C 1)

(ene n a))

  • (defun ene (n a)

(if (< c n) (print (car a)))

(if (> c n) (print (car a)))

(setq c (+ c 1))

(if (cdr a) (ene n (cdr a)) 'FIN))

3. Ejecución

image

No hay comentarios:

Publicar un comentario