Introduccion a LISP

47
 1 /51 Inteligencia Artificial Ing. Saúl Pérez Vega

Transcript of Introduccion a LISP

Page 1: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 1/471 /51

Inteligencia Artificial

Ing. Saúl Pérez Vega

Page 2: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 2/472 /51

Tabla de Contenido

Objetivos  Historia.  Introducción  Expresiones-S Átomos y Listas  Funciones en LISP 

Conclusiones Bibliografía 

Ing. Saúl Pérez Vega

Page 3: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 3/473 /51

Objetivos

Exponer los conceptos básicos del LISP. Presentar las expresiones-s, los átomos y las

listas. Presentar las funciones básicas del LISP. Crear nuevas funciones en LISP.

Ing. Saúl Pérez Vega

Page 4: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 4/474 /51

HISTORIA

Ing. Saúl Pérez Vega

Page 5: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 5/475 /51

Historia Creado por John McCarthy

Responsable de introducir el término “inteligencia Artificial”, lo hizo en la Conferencia de Dartmouth en 1955

McCarthy inventó el lenguaje de programación Lisp ypublicó su diseño en Comunicaciones del ACM en 1960 

El primer Lisp se desarrolló en una IBM-704, y en 1962apareció la versión 1.5.

A mediados de los 60's, MIT desarrolló MacLisp, Xerox -Interlisp, Stanford - UCI Lisp.

En los 70's, G. Steele y G. Sussman - Scheme.

En los 80's - Common Lisp.

Ing. Saúl Pérez Vega

Page 6: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 6/47

6 /51

INTRODUCCIÓN

Ing. Saúl Pérez Vega

Page 7: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 7/47

7 /51

Aspectos Generales

LISP es un lenguaje:◦ orientado a computación no-numérica

◦ lenguaje interactivo, recursivo

◦ No visual

La programación funcional usadefiniciones de funciones y llamadasde funciones como las únicasconstrucciones de programación.

Basado en la notación prefija (ocálculo Lambda).

LISP (LISt Processor)

NotacionesPrefija

/*+ABCF*+AB/CF

Infija((A+B)*C)/F

PostfijaAB+C*F/

AB+CF/*

Ing. Saúl Pérez Vega

Page 8: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 8/47

8 /51

Ejercicio 1

Convierta en notación prefija las siguientesexpresiones

1. (3x + xy - x/y)

2. (3x3 + x2 + 5x -5)

3. (3/x + x2y - x/y)*xy 

4. (2+3*x/y – x*y*z +z3)

Ing. Saúl Pérez Vega

Page 9: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 9/47

9 /51

Ejercicio 2

Convierta a notación prefija las siguientesexpresiones:

1. (5+3-4)/(4*4+5)

2. (3*23 - 2(2*3 - 1)+4/3)/(2*4(3-2+3*4)+3)

3. (4*5)/((2 + 3/4)*(3*5/2 + 1)/(4 + 3))

4. (2*3 – 4 + (5*6))*(4+2)/((4 - 6) - 3*55+ 4 - 2*7)

Ing. Saúl Pérez Vega

Page 10: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 10/47

10 /51

¿Por qué Lisp? En LISP los programas y datos usan la misma estructura, lo

que permite escribir programas que escriban programas. Se pueden desarrollar prototipos rápidamente.

Se pueden probar programas y funciones aisladas.

En otros lenguajes las variables tienen un tipo asociado (nose puede usar una variable sin especificar su tipo).

En LISP los valores tienen tipos no las variables (manifesttyping) a diferencia de los lenguajes convencionales(implicit typing).

Tiene un garbage collector  o recolector de basura ymanejo de memoria automático.

Ing. Saúl Pérez Vega

Page 11: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 11/47

11 /51

¿Por qué Lisp?

Se pueden escribir programas que realicentareas que no se pueden hacer en otroslenguajes,

> (defun doble (n) Se crea una función

(+ n n)

)

> (setf X 3) Se asigna a una variable

Ing. Saúl Pérez Vega

Page 12: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 12/47

12 /51

Computación Simbólica Las reglas léxicas son mucho más simples en LISP.

1. Solo existen paréntesis, comillas (sencilla y doble), espacios ycomas.

2. El punto y coma no separa expresiones (no es necesario debido alos paréntesis) sino que inicia comentarios.

LISP no otorga semántica a los símbolos quemanipula.

Los símbolos en LISP no son case-sensitive.

Muchos signos de puntuación son autorizadospara formar parte de los símbolos:'?!$/<=>*'

Ing. Saúl Pérez Vega

Page 13: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 13/47

13 /51

Computación Simbólica La parte extraña es el ('), que sirve para bloquear

la evaluación de una expresión y devolverlaliteralmente. Se dice que todo lo que está acontinuación de la ‘ se entrega literalmente, no seevalúa.

> '(Carlos Antonio)

CARLOS ANTONIO

> 'A

A

> '2

2

> AError: A is not a bound variable

> (Luis ‘Maria) 

Error: Luis is not a function

> 2

2> '(+ 2 2)

(+ 2 2)

> (+ 2 2)

4

Ing. Saúl Pérez Vega

Page 14: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 14/47

14 /51

Ejercicio 3 ¿Diga que entrega el LISP cuando se le entrega las

siguientes expresiones?:

123  

‘1233   ABC  

‘ABC   

‘(123)  

(ABC)   ‘(ABC)   

(+ 12 3)  

‘(+ 12 3)  Ing. Saúl Pérez Vega

Page 15: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 15/47

15 /51

Ejercicio 3 ¿Diga que entrega el LISP cuando se le entrega las

siguientes expresiones?:

123 123

‘1233

1233 ABC the variable ABC is unbound

‘ABC  ABC

‘(123) (123)

(ABC) Undefind function ABC called ‘(ABC)  (ABC)

(+ 12 3) 15

‘(+ 12 3) (+ 12 3)

Ing. Saúl Pérez Vega

Page 16: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 16/47

16 /51

EXPRESIONES-S

(ÁTOMOS y LISTAS)

Ing. Saúl Pérez Vega

Page 17: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 17/47

17 /51

Símbolos Pueden contener cualquier combinación de letras

y números, y algunos caracteres especiales.

Ejemplos:

BANANASCOMPUTADOR

Símbolos especiales T y NIL◦ T Verdadero, Yes◦ NIL Falso, No, Vacío

Ing. Saúl Pérez Vega

Page 18: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 18/47

18 /51

Expresiones-S Son estructuras del LISP y están formadas

por:1. Átomos. Son elementos que no contienen paréntesis.

Corresponde a símbolos53puca

2. Listas. Es un conjunto de átomos o de otras listasagrupadas dentro de paréntesis.

Una lista tiene cabeza CAR y cola CDR

(D1 D2 D3 D4 D5 . . . DN)

CAR CDR Ing. Saúl Pérez Vega

Page 19: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 19/47

19 /51

Listas Corresponden a una colección de

expresiones-s encerradas entreparéntesis y separadas por espacios.

Las listas permiten representar unagran cantidad de cosas. Los

programas en Lisp se expresan comolistas.

Las listas tienen una representaciónescrita e interna.

nil, es una lista vacía. ‘(), es una lista vacía. nil es equivalente a ‘() 

nil no es nulo (null)

> (atom nil)T

> (listp nil)T

> (atom T)T

> (listp T)NIL

> (atom '())T

> (listp '())

T

> (listp ())T

> (atom ())T

Ing. Saúl Pérez Vega

Page 20: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 20/47

20 /51

Ejemplos de Listas> ‘(1 2 3) 

> ‘((a b) (c d) (e f))> ‘(a (1 2 3) d) 

> ‘((1 uno) (2 dos) (3 tres))

> ‘(1 .(2)) 

(1 2)

> ‘(1 .(2 .(())))

(1 2 nil)

> (Dos .(hombres .(y .(un .(destino . nil)))))(Dos mujeres y un destino)

> (300000 .((masa . nil) .(velocidad . nil) .(luz .nil)))

(300000 ((masa) velocidad) luz)

Ing. Saúl Pérez Vega

Page 21: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 21/47

21 /51

Ejercicio 4Diseñe una lista para representar:Recuerde que el lisp no administra la semántica.

La lista diseñada debe ser entendible por computador y fácil de ser procesado.

Los tipos de datos son implícitos.

1. Los días de la semana.

2. El calendario (sólo para un mes).3. La disposición de ficha en un puzzle.

4. La disposición del juego de michi

5. Un laberinto

6. Las notas obtenidas por los alumnosdel curso.

5 4

6 1 8

7 3 2

Page 22: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 22/47

22 /51

Función especial QUOTE

Esta función toma un argumento y NO lo evalúaEjemplo:

> (quote (+ 2 3))

>(+ 2 3)

La función quote puede ser sustituida por un el símbolo ’ 

>’(+ 2 3)

La Funcion para cambiar de un string a valores 

> ‘(Set a 5) 

>Eval a

> (+ a 5)

Ing. Saúl Pérez Vega

Page 23: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 23/47

23 /51

Ejercicios 5 Indique lo que aparecería después de escribir lo

siguiente

(* 8 9)  

'(* 8 9)  (+ (* 1 2) (+ 3 4))  

(+ '(* 1 2) '(+ 3 4))  

(+ '(* 1 2) (+ 3 4))  

'(+ (* 1 2) (+ 3 4))  

'(+ '(* 1 2) (+ 3 4))  

Ing. Saúl Pérez Vega

Page 24: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 24/47

24 /51

FUNCIONES DEL LISP

Ing. Saúl Pérez Vega

Page 25: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 25/47

25 /51

Operaciones matemáticas(- number [number ...]) Resta (floor number) Menor entero

(* number [number ...]) Producto (gcd integer, integer) Máximo común divisor

(/ number [number ...]) División (lcm [number …])  Mínimo común múltiplo

(+ number number ...) Suma (log number) Logaritmo natural

(1- number) cremento en 1 (logand integer integer ...) AND de bits, ret entero

(1+ number) incremento en 1 (logior integer ...) OR de bits, ret entero

(abs number) valor absoluto (max number number ...) máximo

(atan num1 [num2]) arco tangente (min number number ...) mínimo común múltiplo

(ceiling number) Mayor entero (rem num1 num2 ...) Resto de num1/num2

(cos angle) coseno (round number) Redondeo

(exp number) exponencial (sin angle) Seno en radianes

(expt base power) Potencia. (sqrt number) Raíz cuadrada

(float number) Convierte real (truncate number) Trunca, sin signo

Page 26: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 26/47

26 /51

Número de entradas en una función

Muchas funciones aceptan un numerovariable de entradas

Ejemplo:(+ 4 3 2) (+ (+ 4 3) 2) 9

(- 4 3 2) (- (- 4 3) 2) -1

(* 4 3 2) (*(* 4 3) 2) 24

(/ 6 3 2) (/ (/ 6 3) 2) 1.0(- 4) -4

(/ 4) 0.25 (su reciproco)

Ing. Saúl Pérez Vega

Page 27: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 27/47

27 /51

Operaciones matemáticas(+ n1 n2 ... nN) retorna la suma n1+n2+…+nN. Si N = 0, da 0.(+) 0

(+ 3) 3

(+ 3 7 5) 15

(+ 32000.0 32000) 64000.0

(- n1 n2 ... nN)  retorna el valor de n1-n2-…

.-nN. Si N = 1, da -n1

(- 3) -3

(- 123 7 5) 111

(/ n1 n2) devuelve el valor de dividir n1 por n2.(/ 6 2) 3.0 (/ 5 2) 2.5

(/ n) es lo mismo que (/ 1 n); es decir, devuelve el inverso de n.

(/ 2) 0.5 (/ 0.5) 2.0

Ing. Saúl Pérez Vega

Page 28: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 28/47

28 /51

Operaciones matemáticas(ABS n) devuelve el valor absoluto de n.

(ABS 3) 3(ABS -3.6) 3.6

(MOD n1 n2) devuelve el resto de la división entera de n1 por n2.(MOD 7 2) ---> 1

(MAX n1 ... nN) devuelve el mayor valor de n1,..., nN.(MAX 3) 3 (MAX 1 2 3 4 5 2)  5

(MAX -2.3 7 0) 7.0

(MIN n1 ... nN) devuelve el menor valor de n1,..., nN.(MIN 3) 3 (MIN 1 2 3 4 5 2)  1

(MIN -2.3 7 0) -2.3

Ing. Saúl Pérez Vega

Page 29: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 29/47

29 /51

Ejercicio 6

Indicar qué retorna el LISP para las siguientesexpresiones:

1. (+ 2 3)  

2. (* 2 (+ 4 6)) 

3. (+ 2/7 7/67)  

4. (- 8 6)  

5. (* 2/7 6/5)  

6. (/ 4 5)  

7. (exp 9)  

8. (expt 2 4)  

9. (sqrt 11)  

10. (sin 30)

11. (tan 53) Ing. Saúl Pérez Vega

Page 30: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 30/47

30 /51

Ejercicio 7

Calcular

2*(4 - 1)*6 + (8 - 6)*7 – 5/(4*7+9) + 3/4-5

18

Ing. Saúl Pérez Vega

Page 31: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 31/47

31 /51

Constantes

> pi3.141592653589793

> (exp 1)2.718282

Ing. Saúl Pérez Vega

Page 32: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 32/47

32 /51

PredicadosSon aquellas funciones cuyo resultado es un

valor booleano

atom numberp, symbolp listp, null, endp

zerop, oddp, evenp, >, < equal, not

Ing. Saúl Pérez Vega

Page 33: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 33/47

33 /51

Predicados(/= atom atom .....) Desigualdad (atom item)

Es un átomo

(< atom atom .....) Menor (listp list) Es lista

(<= atom atom .....) Menor o igual(boundp atom) Está inicializado

(= atom atom .....) Igualdad(null item) Está inicializado en nil

(> atom atom .....) Mayor(endp list) Lista vacía

(>= atom atom .....) Mayor o igual(evenp number) Es par

(or expression .....) or (nil si todos nil)(oddp number) Es impar

(and expression .....) and (T si todos T)(numberp item) Es real o entero

(not item) Es nil (symbolp symbol) Es símbolo(boole func int1 int2 ...)

función booleana (zerop number) Es cero

(eq exp1 exp2) igualdad (idénticos) (minusp item) T si es negativo

(equal exp1 exp2) igualdad (estructural)

Page 34: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 34/47

34 /51

atom

Identificación de átomos: atom ◦ Identifica todo aquello que no es una lista no vacía

◦ No sirve para diferenciar una lista vacía nil de algo queno sea una lista.

◦ (atom <objeto>)

> (setf x '123)

> (atom x)T

Ing. Saúl Pérez Vega

Page 35: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 35/47

35 /51

listp, null, endp

Identificación de listas: listp◦ Identifica listas

◦ Sirve para distinguir lo que es nil o una lista no vacíade cualquier otra cosa.

(listp <objeto>)

Identificación de listas vacías◦ (null <objeto>)

◦ (endp <lista>)

Ing. Saúl Pérez Vega

Page 36: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 36/47

36 /51

numberp, symbolp Identificación de números: numberp

◦ Identifica átomos numéricos, (numberp <objeto>)

◦ Ejemplos:

(numberp 2) T

(numberp ‘PERRO) nil

(numberp “perro”)  nil

Identificación de símbolos: symbolp◦ Identifica símbolos (symbolp <objeto>)

Ejemplos:(SYMBOLP 2) NIL

(SYMBOLP ‘PERRO) T

(symbolp “perro”)  nil

Ing. Saúl Pérez Vega

Page 37: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 37/47

37 /51

zerop, oddp, evenp, <, >

ZEROP devuelve T si su entrada es 0 ODDP devuelve T si su entrada es un numero impar

EVENP devuelve T si su entrada es un numero par

< devuelve T si su primera entrada es menor que lasegunda

> devuelve T si su primera entrada es mayor que lasegunda

(ZEROP 0) T; (ODDP 28) NIL; (EVENP 28) T;

(ZEROP 4) NIL; (ODDP 27) T; (EVENP 27) NIL;

(< 2 3) T

(> 2 3) NIL

Ing. Saúl Pérez Vega

Page 38: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 38/47

38 /51

Átomos, listas, listas vacíasátomo lista vacía es lista lista vacía

atom null listp endp'(1 2) nil nil T nil

() T T T T

'() T T T T

nil T T T T'a T nil nil is not LIST 

'1 T nil nil is not LIST 

1 T nil nil is not LIST 

a is unbound  is unbound  is unbound  is unbound 

Page 39: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 39/47

39 /51

Ejercicio 8

Diga qué retorna el LISP en lossiguientes casos:

1. (and (oddp 3) (evenp 2) (minusp -3)(zerop 0.0))

2. (and (> -3.0 (truncate -3.1))(= -3.0

(round -3.1))

(> -3.0 (ceiling -3.1))(= 4

(floor 4.31)))

Ing. Saúl Pérez Vega

Page 40: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 40/47

40 /51

Ejercicio 9

Diga qué retorna el LISP en los siguientescasos:

1. (and (atom 'hola) (null 'hola)(listp '() ) (andp '() ))

2. (and (atom (+ 3 4)) (atom '(+ 3 4))

(listp (* 3 4)) (listp '(* 3 4)))

3. (and (listp '("(2 3)")) (listp '(nil)) (listp

()))

Ing. Saúl Pérez Vega

Page 41: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 41/47

41 /51

not Predicado NOT

◦ Realiza la negación lógica de su único argumento(not <argumento>)

Ejemplos:

(NOT T) NIL(NOT NIL) T

Ing. Saúl Pérez Vega

Page 42: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 42/47

42 /51

igualdad = compara reales, enteros o imaginarios.

eq compara átomos

eql compara átomos, es más flexible que eq.

retorna nil si alguno de sus argumentos eslist

equal compara objetos, devuelve T si su dos entradasson iguales, y NIL en caso contrario◦ (equal <objeto1> <objeto2>)

equalp compara objetos, es más flexible que equal.

Ing. Saúl Pérez Vega

Page 43: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 43/47

43 /51

igualdadnúmeros átomos objetos objetos G

a1 a2 = eq eql equal equalp'(1 2) '(1.0 2.0) error type nil  nil  nil  T 

'(1 2) '(1 2) error type nil  nil  T  T 

'(A A) '(a a) error type nil  nil  T  T 

1 1.0 T  nil  nil  nil  T 

'1 1 T T  T  T  T 

'1.1 1.1 T nil  T  T  T 

(+ 2 3) 5.0 T  nil  nil  nil  T 

(+ 2 3) '5 T T  T  T  T 

(+ 2 3) 5 T T  T  T  T 

'A 'a error type T  T  T  T 

"abc" 'abc error type nil  nil  nil  nil 

"ABC" "abc" error type nil  nil  nil  T 

Page 44: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 44/47

44 /51

Ejercicio 10

Diga qué retorna el LISP en los siguientescasos:

(= (+2 3 4) ‘9)  (eq 1234 “1234”) 

(eq ‘1234 1234) 

(eq ‘(12 12) ‘(12 12)) 

(eql ‘(12 12) ‘(12 12))  (equal ‘(12 12) ‘(12 12)) 

(equal ‘(12.1 12) ‘(12 12.1)) 

Ing. Saúl Pérez Vega

Page 45: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 45/47

CONCLUSIONES

Ing. Saúl Pérez Vega

Page 46: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 46/47

46 /51

Conclusiones

LISP es un lenguaje de alto nivel de tipofuncional que es utilizado en múltiplesaplicaciones de IA

LISP se basa en manejo de listas y tienedesde funciones simples hasta estructuras

de datos

Ing. Saúl Pérez Vega

Page 47: Introduccion a LISP

5/13/2018 Introduccion a LISP - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-lisp 47/47

Bibliografía

LISPWinston and HornAddison Wesley

The Little Lisper

Daniel Friedman and Mathias FelleisenSRA

Apuntes de LISP

Graeme Ritchie