Está en la página 1de 3

Resolución 1ª Practica de Laboratorio

1.- Programa que devuelve la cantidad de sublistas de un lista L.

CL-USER 5 : 1 > (defun contar(lista)


(if (endp lista) 0
(if (listp (car lista))
(+ 1 (contar(rest lista))) (contar(rest lista)))))
CONTAR

CL-USER 6 : 1 > (contar '(1 (2 3 4) 43 (5 4 7) (3 2 1)))


3

2.- Programa que imprime los números múltiplos de 3 de una lista L.

CL-USER 26 : 7 > (defun multiT(lista)


(if (endp lista) nil
(if (atom (car lista))
(if (= (mod (car lista) 3) 0)
(append (list (car lista)) (multiT (rest lista)))
(multiT (rest lista)))
(append (multiT (car lista)) (multiT (rest lista))))))
MULTIT

CL-USER 27 : 7 > (multiT '(3 4 5 6 7 9 12))


(3 6 9 12)

3.- Programa que suma los números múltiplos de 5 de una lista.

CL-USER 7 : 1 > (defun multiC(lista)


(if (endp lista) 0
(if (= (mod (car lista) 5))
(+ (car lista) (multiC(rest lista))) (multiC(rest lista)))))
MULTIC

CL-USER 8 : 1 > (multiC '(4 5 20 100 25 35 8 9))


206
Recorrido en amplitud
CL-USER 1> (defun anchura (l)
(cond ((not (endp l))
(let ((m '()))
(progn
(dolist(x l)
(progn
(cond ((atom x)(print x)))
(cond ((not(atom x))(progn (print (car x)) (setf m (append
m (cdr x))) ))))) (anchura m))))))

CL-USER 2 > (anchura '(1 2 3))


1
2
3
NIL

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


1
2
4
3
NIL

CL-USER 4 > (anchura '(1 (2 (3 4 5)) (6 7 8)))


1
2
6
3
7
8
4
5
NIL

CL-USER 5 > (anchura '(1 (2 (3 4) 5) (6 (7 8 9) (10 (11 12) 13))))

1
2
6
3
5
7
10
4
8
9
11
13
12
NIL

También podría gustarte