Вы находитесь на странице: 1из 5

Problemas de LISP

INTELIGENCIA ARTIFICIAL

ENEYDA YAZMIN HONORATO RODRIGUEZ

2014


30/06/2014
FANY VELAZQUEZ MARTINEZ
FRANCISCO DE JESUS SAYAS COSME
VICTOR EDUARDO MACHUCHO GOMEZ
FRANCISCO JAVIER FERNANDEZ CHAPOL


1


INTELIGENCIA ARTIFICIAL
INDICE
Introduccin 1
Problemas 2
Conclusin 4
Referencias bibliogrficas 4






INTRODUCCIN
En el presente trabajo se muestra la resolucin de problemas con listas en
LISP.












2


INTELIGENCIA ARTIFICIAL
1) Disear un predicado (funcin de que devuelve valores booleanos)
que, a partir de una lista y un elemento Lisp cualquiera, decida si el
elemento es equal a alguno de los elementos de la lista (si la lista es
vaca se entiende que el resultado de la bsqueda debe ser nil).

(defun comparar (lista)
(if (endp lista)
nil



(if ( equal (first lista) x)
T

(if ( equal (first (rest lista)) x)
T

(if ( equal (first (rest (rest lista))) x)
T ))))
)

;>>(setq x= dar un valor)
;>>(comparar '()) debe dar nil
;>>(comparar '( a b c)) debe dar T si se encuentra x


2) Disear una funcin que a partir de una lista de enteros positivos,
calcule el elemento mximo (se impone que si la lista es vaca se
devuelva el entero -1). indicaciones: utilcese la funcin mayor que
aparece en el texto de arriba.

(defun numeromayor (x y) (if (< x y) y x))
(defun mayordl (lista) (cond ((null lista) -1)
( t (numeromayor (first lista) (mayordl (rest
lista))))))




3


INTELIGENCIA ARTIFICIAL
3) Disear una funcin que, a partir de una lista no vaca de enteros,
calcule el elemento mnimo. Indicaciones: disese dos funciones
auxiliares, un predicado que verifique si una lista tiene un nico
elemento y una funcin que calcule el mnimo de dos nmeros
enteros.
(defun numeromenor (x y) (if (< x y) x y))
(defun nico (lista) (setq y (length lista )) (if (= y
1) unico ))
(defun menorl (lista)
(setq x (length lista ))
(if (= x 1) (first lista)
(if (> x 1)
(numeromenor (first lista) (menorl (rest lst))))
)
)
(defun numeromenor (x y) (if (< x y) x y))
(defun unico (lista) (setq x (length lista )) (if (= x
1) unico ))
(defun menorl (lista)
(unico lista)
(if (> x 1)
(first
(numeromenor (first lista) (menorl (rest lista))))))










4


INTELIGENCIA ARTIFICIAL
CONCLUSIN

En conclusin Common Lisp, como el resto de lenguajes de la familia Lisp, tiene la
caracterstica de ser un lenguaje de programacin interactivo. Es decir, el modo
habitual de trabajar en Common Lisp consiste en introducir (desde el teclado o
bien por lectura de un fichero) una expresin, que es procesada (evaluada, segn
la terminologa Lisp) y por ltimo se procede a la escritura del resultado (en la
pantalla o en otro fichero), quedando a continuacin el sistema a la espera de que
se le facilite una nueva expresin.


Referencias bibliogrficas:

http://es.wikipedia.org/wiki/Common_Lisp

Вам также может понравиться