3
EJERCICIOS DE RECURSIVIDAD APLICADOS EN LISTAS 1. Suma de los elementos de una lista L CL- USER 1 > (defu n sum a (L)( if (null L) 0 (+ (car L) (sum a (cdr L))))) SUMA CL- USER 2 > su m a '(1 2 3 4) 10 2. Cu e nt a las sub listas dentr o de u na lista “L" CL-USER 3 > (de fun s ubl istas (L) (cond ((or (nu ll L) (atom L)) 0) (t (+ (if (atom ( car L)) 0 1) (subl istas (car L)) (subl i stas (cdr L )))))) SUBLISTAS CL- USER 4 > (subl i stas '(a (b c(d))(e f ))) 3 3. Cuenta los átomos de una lista “L”  CL-USER 5> (defu n cuenta-a tomos (L)(cond ((null expr) 0)((atom L) 1)(t (+ (cuenta-a tom os (car L))(cuen ta- ato m os (cdr L)))))) CUENTA-ATOMOS CL-USER 6> (cuen ta-a tom os '(1 3 4 6)) 4 4. Cuenta los elementos de una lista L” (átomos o sublistas)  CL- USER 7 > (defu n contar(L)(if ( e ndp L) 0 (i f(atom ( car L)) (+ 1 (con tar(cdr L))) (+ (contar(car L)) (contar(cdr L))) ))) CONTAR CL-USER 8 > (contar '(1 4 6 8 4)) 5 5. Pr odu cto de los ele m e ntos de u na lis ta “L”  CL- USER 9> (defu n producto (L)(if (nu ll L) 1 (* (car L) (producto (cdr L))))) PRODUCTO CL-USER 10 > producto '(1 3 4) 12

Ejercicio Listas lisp

Embed Size (px)

Citation preview

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)