Transcript
Page 1: Ejercicio Listas lisp

7/26/2019 Ejercicio Listas lisp

http://slidepdf.com/reader/full/ejercicio-listas-lisp 1/3

EJERCICIOS DE RECURSIVIDAD APLICADOS EN LISTAS

1.  Suma de los elementos de una lista “L” 

CL-USER 1 > (defun suma (L)( if(null L) 0 (+ (car L) (suma (cdr L)))))

SUMA

CL-USER 2 > suma '(1 2 3 4)

10

2. 

Cuenta las sublistas dentro de una lista “L" 

CL-USER 3 >(defun sublistas (L) (cond ((or (null L) (atom L)) 0)

(t (+ (if (atom (car L)) 0 1) (sublistas (car L))(sublistas (cdr L))))))

SUBLISTAS

CL-USER 4 > (sublistas '(a (b c(d))(e f)))

3

3.  Cuenta los átomos de una lista “L” 

CL-USER 5>(defun cuenta-atomos (L)(cond ((null expr) 0)((atom L) 1)(t (+ (cuenta-atomos

(car L))(cuenta-atomos (cdr L))))))CUENTA-ATOMOS

CL-USER 6> (cuenta-atomos '(1 3 4 6))4

4.  Cuenta los elementos de una lista “L” (átomos o sublistas) 

CL-USER 7 > (defun contar(L)(if(endp L) 0 (if(atom(car L))(+ 1 (contar(cdr L)))

(+ (contar(car L)) (contar(cdr L))))))

CONTAR

CL-USER 8 > (contar '(1 4 6 8 4))

5

5. 

Producto de los elementos de una lista “L” 

CL-USER 9> (defun producto (L)(if (null L) 1 (* (car L) (producto (cdr L)))))PRODUCTO

CL-USER 10 > producto '(1 3 4)

12

Page 2: Ejercicio Listas lisp

7/26/2019 Ejercicio Listas lisp

http://slidepdf.com/reader/full/ejercicio-listas-lisp 2/3

6. 

Contar los elementos pares de una lista “L” 

CL-USER 11> (defun par(n)(if (eq (mod n 2) 1) 0 1))PAR

CL-USER 12 > (defun pares(L)(if (null L) 0 (+ (par(car L)) (pares(cdr L)))))PARES

CL-USER 13 > pares '(2 4 5 6 8)

4

7. 

Buscar un elemento “n” en una lista “L” 

CL-USER 14 > (defun busca (n L)(if (null L) Nil (if (eq n (car L)) T (busca n

(cdr L)))))

BUSCA

CL-USER 15 > (busca 2 '(3 4 5)) NIL

CL-USER 16 > (busca 2 '(3 2 6))

T

8.  Obtener el número de elementos repetidos de una lista “L” 

CL-USER 17 > (defun repetidos (L)(if (null L) 0 (if (eq (busca (car L) (cdr L)) t)

(+ 1 (repetidos (cdr L)))(+ 0 (repetidos (cdr L))))))REPETIDOS

CL-USER 18 > repetidos '(2 3 4 5 6)0

CL-USER 19 > repetidos '(1 1 1 1 3 3 3 2)5

9.  Obtener el mayor elemento de una lista “L” 

CL-USER 20 > (defun mayor(L)(if (null L) 0 (if (> (car L) (mayor(cdr L))) (carL) (mayor (cdr L)))))MAYOR

CL-USER 21 > (mayor '(1 4 2 6 4 2))

6

Page 3: Ejercicio Listas lisp

7/26/2019 Ejercicio Listas lisp

http://slidepdf.com/reader/full/ejercicio-listas-lisp 3/3

10. Remueve los contenedores de las sublistas de una lista “L” 

CL-USER 22 > (defun remuevesublistas (L)

(cond((null L) NIL)

((atom (car L))(cons(car L)

(remuevesublistas (cdr L))))(t (append(remuevesublistas (car L))

(remuevesublistas (cdr L))))))REMUEVESUBLISTAS

CL-USER 23 > remuevesublistas '((2 3) 5 (a (f (3 4))))(2 3 5 A F 3 4)


Top Related