0% encontró este documento útil (0 votos)
47 vistas2 páginas

Funciones y Recursividad en Lisp

El documento presenta ejemplos de funciones en Lisp para sumar, definir funciones condicionales, calcular notas con condicionales, funciones recursivas como factorial, Fibonacci, sumatoria y potencia, calcular el producto escalar de dos listas, y contar cuantos elementos de una lista son mayores que 10. Se definen funciones como SUM, ABSO_COND1, NOTA, F_, FIBO, SUM, POT, PRODUCTOES y MAYDIEZ para resolver diferentes problemas matemáticos y de lista de manera recursiva y con condicionales.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas2 páginas

Funciones y Recursividad en Lisp

El documento presenta ejemplos de funciones en Lisp para sumar, definir funciones condicionales, calcular notas con condicionales, funciones recursivas como factorial, Fibonacci, sumatoria y potencia, calcular el producto escalar de dos listas, y contar cuantos elementos de una lista son mayores que 10. Se definen funciones como SUM, ABSO_COND1, NOTA, F_, FIBO, SUM, POT, PRODUCTOES y MAYDIEZ para resolver diferentes problemas matemáticos y de lista de manera recursiva y con condicionales.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

CL-USER 9 : 3 > (DEFUN SUM (X Y) (+ X Y))

SUM

CL-USER 10 : 3 > (= 10 (SUM 4 6))


T

CL-USER 11 : 3 > (= 10 (SUM 1 2))


NIL

CONDICIONAL
CL-USER 36 : 5 > (IF (/= 3 4) "ES TRUE" 0)
"ES TRUE"

CL-USER 1 > (DEFUN ABSO_COND1 (N) (IF (< N 0) (* N -1) (N)) )


ABSO_COND1

CL-USER 2 > (ABSO_COND1 -312)


312
FUNCION COND

| SUSPENSO , si N < 5
| APROBADO , si 5 <= N < 7
(NOTA N) = | NOTABLE , si 7 <= N < 9
| SOBRESALIENTE, si 9 <= N <= 10
| ERROR , si N > 10
(DEFUN NOTA (N)
(COND ((< N 5) 'SUSPENSO)
((< N 7) 'APROBADO)
((< N 9) 'NOTABLE)
((<= N 10) 'SOBRESALIENTE)
(T 'ERROR)))
RECURSIVIDAD
FACTORIAL
(DEFUN F_ (N)
(IF (= N 1) (SETQ N 1) (* N (F_ (- N 1)))) )

FIBONACCI
(DEFUN FIBO ( pos )
(if (= pos 0) 1
(if (= pos 1) 1
( if (= pos 2) 2
( + (FIBO (- pos 1)) (FIBO (- pos 2))
)
)
)
)
)

SUMATORIA
(defun sum (n)
(if (= n 1)
1
(+ n (sum (- n 1)))
)
)

POTENCIA
(defun pot (n p)
(if (= p 1)
n
(* n ( pot n (- p 1)) ) //No () de pot( n (- p 1) ) pq tiene q llamar
)
)

PRODUCTO ESCALAR DE 2 LISTAS


(defun productoEs (v1 v2)
( if ( or (null v1) (null v2) ) 0
( + ( * (car v1) (car v2) ) ( productoEs (cdr v1) (cdr v2) ))
)
)

Contabilizar cuantos números son mayores que 10 de una lista


( defun MayDiez (l1)
(cond ((null l1) 0 )
( (> (car l1) 10) (cond (t (+ 1 (MayDiez (cdr l1))))) )
( (<= (car l1) 10) (MayDiez (cdr l1)) )
)
)

También podría gustarte