Professional Documents
Culture Documents
(defun profundidad_maxima(expresion)
((atom expresion)1)
))
(defun combinatorio(x y)
))
(if (= (/ n 2) 0) 'fin
(decimal-binario(/ (- n 1) 2)))
Escribir una función que tome una lista y un número natural “n” y retorne la lista
original sin los últimos “n” elementos.
Método tamano:
(defun tamano(lista)
(if(endp lista)
0
(if(atom(car lista))
(+ 1 (tamano(cdr lista)))
)))
Método cortarlista:
(defun cortarlista (L n)
))
(if(null L) 'fin
(if(= (mod (car L) 3) 0) (progn (setq b (car L)) (format t "~a~%"b )(multiplos3 (cdr L)))
)))
Pagina de recursividad
https://es.slideshare.net/Ceci23/t3-ejercicios-de-recursividadgrupo6
http://www.togores.net/vl/curso/lisp/bases/funciones-recursivas-e-
iterativas/funciones-recursivas
FUNCIONES RECURSIVAS EN LISP
Ejemplo: fibo 4
5
7.- Función recursiva para ver si existe algún impar
( defun impar(num)
(cond((null num)nil)
((oddp(car num))t)
(t(impar ( cdrnum)))))
Ejemplo: ( impar '(2 3))
T
8.- Función recursiva para invertir un número
(defun invertir (num)
( if ( < num 10 ) num
( + ( / num 10) ( * ( invertir ( / num 10 )) 10))))
Ejemplo:invertir 12
21
9.- Función Recursiva para sumar los dígitos de un número
(defun sumadig (num)
(if ( eq num 0) num
(+ ( (sumadig ( / num 10))) (/ num 10))))
Ejemplo: (sumadig 12)
3
10.- Funciónrecursiva para contar los elementos de una lista
(defun cont (lista) (if (endp lista) 0 (+ 1 (cont (cdr lista))) ) )