SlideShare una empresa de Scribd logo
INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• Para salir escriba (exit)

• Pruebe un comando de ejemplo como la multiplicación :
                      (* 5 6 20) => 600

• La anterior instrucción hará una multiplicación de los tres
  números devolviendo 600 como resultado.

• Tenemos 2 tipos de datos: Atómicos y Listas



                                                                          2 de 40


               INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
b,4, color-casa ,etc.
Al evaluar un tipo de dato atómico, nos devuelve el valor que se le
ha asignado. Los números son un caso especial, siempre devuelven
el mismo valor.
                              20 = > 20

Si ponemos “edad-hermano” sin definirla con un valor, devuelve:
              edad-hermano => Error (variable not defined)
Se asigna un valor con el comando:
                      (setq edad-hermano 19)=> 19
                           edad-hermano => 19

Existen palabras reservadas como nil , T, etc.
No se distinguen mayúscula y minúsculas: las variables ola y Ola son
la misma.                                                                3 de 40


              INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(b), ( * 9 8) , (casa ( silla mesa e) j ), (), nil

• nil es a la vez un valor atómico y una lista : ()

• La evaluación de una lista siempre invoca una función.
  (nombre-de-la-función argumento1…argumento n)
                (* 50 10) => 5
                (e 45,46,47) => Error (function not defined)
                (+ edad-hermano 8) => 27

• Cuando evaluamos una lista, primero evaluamos los
  argumentos para después aplicar la función

                                                                          4 de 40


               INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• Lisp incluye operadores como +, - , * , /
• Además, incluye varias operaciones importantes.
   Cons construye una lista de datos con una cola.
              (cons 10 (cons 12 nil)) => (10 12)

   Hay que tener en cuenta que el valor de la cola que significa
    'nada' es nulo.
   Si probamos con átomos que no están reservados.
     (cons Jose nil) => Error: variable a is not defined.

      ¿Por qué sale ese error?

                                                                       5 de 40


            INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
Tenemos que decirle al intérprete que no evalúe al átomo Jose. Para ello se
 pone adelante ‘
                        (cons ‘Jose nil) => (JOSE)

De forma abreviada se puede aplicar a una lista completa :
    (cons ‘Jose ‘(Pepe Marta Carlos ))=> (JOSE PEPE MARTA CARLOS)

 Veremos diferencias entre list y append.
            (list ‘Jose ‘Marta ‘Carlos) => (JOSE MARTA CARLOS)
          (list ‘Jose ‘(Marta Carlos)) => (JOSE (MARTA CARLOS))
(append ‘(Jose Marta) ‘(Carlos Carmen))=> (JOSE MARTA CARLOS CARMEN)

La diferencia es que append, usa a listas como argumentos para formar
 otra lista.                                                                  6 de 40


               INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
Si queremos listar, pero uno de los elementos a listar es resultado de una
 operación, se pondrá entre paréntesis. Por ejemplo:

(list ‘Jose ‘24 (* edad-hermano 3) ‘ Marta ‘24) => (JOSE 24 75 MARTA 24)



Una coma dentro de un par de paréntesis antepuesto por una apóstrofe,
le dice a Lisp que, tiene evaluar lo que le sigue a la coma. Por ejemplo:

   ‘(Jose 24 ,(* edad-hermano 3) Marta 24)=> (JOSE 24 75 MARIA 24)

                                                                              7 de 40


                INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
Una vez que tenemos una lista construida, ¿Cómo accedemos a los miembros de
  la lista?
• first : Primero de una lista.
                            (first ‘(Jose Marta Carlos)) => JOSE
            (first ‘((Jose Marta Carlos) Carmen) )=> (JOSE MARTA CARLOS)
• rest : Toda la lista menos el primer elemento
                    (rest ‘(Jose Marta Carlos)) => (MARTA CARLOS)
                  (rest ‘((Jose Marta Carlos) Carmen) )=> (CARMEN)
• car y cdr se pueden combinar
                  (caar '((Jose Marta ​) Carmen Miguel)) => JOSE
                (cdar '((Jose Marta ​) Carmen Miguel)) => (MARTA)
 Se tiene que trabajar desde la derecha hacia la izquierda.                   8 de 40


                  INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• Por ejemplo, si escribimos:
   (setq listaPrueba ‘(Ana Carla Patricia)) => (ANA CARLA PATRICIA)
    (cons ‘Marcos listaPrueba) => (MARCOS ANA CARLA PATRICIA)
                 listaPrueba => (ANA CARLA PATRICIA)

• No tiene efectos secundarios, la lista no cambió. Necesitamos setq
  para cambiar el valor de un átomo.

• setf es una versión de setq que tiene una función como primer
  argumento.
            (setf (cadr listaPrueba) ‘Antonio) => ANTONIO
               listaPrueba => (ANA ANTONIO PATRICIA)
                                                                           9 de 40


                INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• A continuación veremos 2 tipos de igualdad
                    (eq ‘Marta ‘Carlos) => nil
                     (eq ‘(jose) ‘(Jose)) => nil
                       (eq ‘Jose ‘JoSe) => T

                    (equal ‘Carlos ‘Carlos) => T
                  (equal ‘(Marta) ‘(Marta)) => T
       (equal ‘(alumno profesor) ‘(alumno profesor)) => T

• (equal x, y) es T cuando (eq x y) es verdadero y cuando las cosas
  se escriben iguales son verdaderas .

                                                                         10 de 40


              INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• ¿Se puede el tratar a una lista como un conjunto, es decir, sin preservar
  el orden?
   (union ‘(Marta Carla) ‘(Marta Luis Juan)) => (JUAN LUIS MARTA CARLA)
  (union ‘((Marta) (Carmen)) ‘((Marta))) => ((MARTA) (MARTA) (CARMEN))
 (union ‘((Marta) (Carmen)) ‘((Marta)) :test ‘equal) => ((MARTA) (CARMEN))

• La condición de prueba para determinar si los 2 elementos en el
  conjunto son los mismos es la función equal.
       (adjoin ‘Marta ‘(Marta Carla Juan)) => (MARTA CARLA JUAN)
   (set-difference ‘(Juan Marta Carla ) ‘(Marta Pedro Carla)) => (JUAN)

• adjoin y set-difference también pueden usar :test ‘equal. Incluso puede
  proporcionar su propia función.
                                                                              11 de 40


                  INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(length ‘(Richard Cecilia Alonso)) => 3
               (atom ‘1) => T
(atom ‘(Richard Cecilia Alonso)) => NIL
        (listp ‘inteligencia) => NIL
    (listp ‘(IA Modelos Redes)) => T




                                                           12 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(<= Alonso (and Bruno Carmen))
                                        (not (not Daniel))
                                  (or Pablo (not Pedro) Marcos)



    (list ‘<= ‘Alonso (list ‘and ‘Bruno ‘Carmen)) => (<= ALONSO (AND BRUNO CARMEN))
                         (list ‘not (list ‘not ‘Daniel)) => (NOT (NOT DANIEL))
        (list ‘or ‘Pablo (list ‘not ‘Pedro) ‘Marcos) => (OR PABLO (NOT PEDRO) MARCOS)


Tener en cuenta que los operadores KIF =>, <=, <=>, and, or, not serán
siempre el primer elemento de la lista.

                                                                                        13 de 40


                    INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(defun <nombre> <documentación-de-cadena> (<argumentos>)
                              <cuerpo>)
              (defun cubo (dato1) (* dato1 dato1 dato1))
                            cubo 6 => 216

Tenga en cuenta que no tenemos que citar a ninguno de los argumentos de
defun. Se atiende de forma automática.

La evaluación de una función para un conjunto de argumentos como
resultado en la última expresión valuada en el función de seguimiento.

                                                                            14 de 40


                 INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(if <expresión> <entonces - expresión> <de lo contrario - expresión>)

Por ejemplo:
                                    setq dat1 5 => 5
                                    setq dat2 6 => 6
               (if (> dat1 dat2) (- dat1 dat2) (* dat1 dat2)) => 30
                            (if (> 3 4) (+ 3 4) (- 3 4)) => -1
                         (if (eq 3 3) (+ 20 1) (/ 10 2)) => 21




                                                                              15 de 40


                   INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
La evaluación de cond evalúa las pruebas hasta que una
de ellas se evalúe como verdadera. A continuación, se evalúa cada uno de
las formas adecuadas; la última evaluación es el valor de toda la función
cond.

Por ejemplo:
                 setq listaN ‘(25 12 100 20) => (25 12 100 20)
                            listaN => (25 12 100 20)
                                 car listaN => 25
                                atom listaN => NIL
                                 listp listaN => T
    ( cond ( (atom listaN) NIL) ((listp listaN) (car listaN)) (T NIL) ) => 25

                                                                                16 de 40


                  INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
17 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
18 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
19 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
20 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
21 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
22 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(and <form1> <form2>….<formn>)
• Evalúa a nil tan pronto como uno de los <formi> sea nulo.
  De lo contrario se evalúa hasta <formn>
              (or <form1> <form2>….<formn>)
• Evalúa al primer argumento no nulo. Si no hay ninguno
  evalúa a cero.


        (not <form>) y (null <form>) son idénticos.
• Por lo general, utilizan este último cuando el resultado debería
  ser una lista.
                                                                        23 de 40


             INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
24 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(let ((<var1> <init1>) (<var2> <init2>)…)<body> )

• Declarar las variables locales. Lo mejor es declarar
  las variables antes de usarlas.
    (dotimes (<contador> <limite> <result>)<body>)

(let ((sum 10))
(dotimes (i 10 sum ) (setq sum (- sum 1))))

(let ((sumatoria 0))
(dotimes (i 20 sumatoria )(setq sumatoria (+ sumatoria i))))              25 de 40


               INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
26 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(dolist (<var> <initlist> <result) <body>)

    (do ((<var1> <init1> <increment1>)(<var2> <init2>
  <increment2>) …)(<termination-test> <result>) <body>)

• Combinaremos let and dolist


       (let ((acuSuma 0))
            (dolist (indice ‘(1 2 3 4 5 6 7) acuSuma)
                    (setq acuSuma (+ acuSuma indice)) ) )               27 de 40


             INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
28 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• Nada nuevo en esta sección


     (defun factorial (numero)(if (eq numero 1) 1
          (* numero (factorial (- numero 1)))
                          ))

                          (factorial 5) -> 120




                                                                       29 de 40


            INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
30 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
31 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• (mapcar <nombre-función><lista>)
  - Mapcar aplica la función a cada elemento de
     lista y devuelve una lista de los resultados.


 (mapcar ‘atom ‘(alumno profesor (a b) )) => (T T nil )
    (defun factorial (numero)(if (eq numero 1) 1
         (* numero (factorial (- numero 1)))
                          ))
       (mapcar ‘factorial ‘(1 3 6)) => (1 6 720)
• Otras Operaciones de listas: remove-if, remove-if-not, some,
  every, search, subseq, length
                                                                         32 de 40


              INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
33 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
34 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• Una cadena en Lisp es técnicamente una serie de
  caracteres.
• Tendrá que utilizar operadores especiales para trabajar con
  cadenas: concatenar, subseq, de búsqueda.
• El código de ejemplo incluye la funcionalidad suficiente para
  que no deberían tener que preocuparse sobre las cadenas
  Además de la salida de los resultados de su razonador.
• La única cosa a tener en cuenta es cuando usted está
  incluir una cita en el html que enviar de vuelta al
  cliente. Sólo asegúrese de usar una  para escapar de cualquier
  tales citas. Un ejemplo aparece en la función
  myfrontpage.
                                                                        35 de 40


             INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
• (print   <form>)          imprime          tanto        la    evaluación   de

  <form> y vuelve a la evaluación de <form>.

• Es útil para la depuración.

• princ, print1, print todo trabajo es básicamente lo mismo

  pero con pequeñas diferencias.


                                                                                  36 de 40


             INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -    GRUPO 6
(format <destination> <control-string> <optionalarguments>)



<destination>: imprime en la línea de comandos

Nil No imprime nada pero retorna cadenas sino imprime en el
flujo de <destination>

<control-string>: Al igual que printf/sprintf en C. Incluye
marcadores de posición para los argumentos



                                                                        37 de 40


             INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
<optional-arguments>: Los argumentos que se llenan en los
marcadores de posición en el control de cadena.



• ~A: Ascii—cualquier objeto Lisp

• ~D: Numeros decimales

• ~%: nueva linea

• ~~: tilde


                                                                         38 de 40


              INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
39 de 40


INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6
(trace <func-name1> <func-name2> … <funcnamen>)

• Cada vez que una de estas funciones se evalúa, Lisp imprime el
  nombre de la función y los argumentos dado en la terminal.
  Cada vez que una las funciones retornen salidas, Lisp imprime lo
  que su valor de retorno era. Llamar a remontar varias veces se
  sumará a la lista de funciones.

• Para desactivar el seguimiento de una función foo y bar, use
  (untrace foo bar). Para desactivar todo el rastreo, use (untrace)

                                                                        40 de 40


             INTELIGENCIA ARTIFICIAL   -   CICLO 2012-I   -   GRUPO 6

Más contenido relacionado

La actualidad más candente

Metodología para la solución de problemas
Metodología para la solución de problemasMetodología para la solución de problemas
Metodología para la solución de problemas
22-05-30-16-15
 
Distribución binomial
Distribución binomialDistribución binomial
Distribución binomial
RogerAvalos10
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
carpio
 
Distribución binomial
Distribución binomialDistribución binomial
Distribución binomial
RogerAvalos10
 
DISTRIBUCIÓN Binomial
DISTRIBUCIÓN Binomial DISTRIBUCIÓN Binomial
DISTRIBUCIÓN Binomial
RogerAvalos10
 
I1M-T17: El TAD de los conjuntos
I1M-T17: El TAD de los conjuntosI1M-T17: El TAD de los conjuntos
I1M-T17: El TAD de los conjuntos
José A. Alonso
 
Funciones exponenciales
Funciones exponencialesFunciones exponenciales
Funciones exponenciales
Carlos Calle
 
Tema 23: Técnicas de diseño descendente de algoritmos
Tema 23: Técnicas de diseño descendente de algoritmosTema 23: Técnicas de diseño descendente de algoritmos
Tema 23: Técnicas de diseño descendente de algoritmos
José A. Alonso
 
Dominioycodominio
DominioycodominioDominioycodominio
Dominioycodominio
jhonny tenesaca
 
Más sobre funciones
Más sobre funcionesMás sobre funciones
Más sobre funciones
Aurora Domenech
 
Tema4 funcs elementales_3
Tema4 funcs elementales_3Tema4 funcs elementales_3
Tema4 funcs elementales_3
Aurora Domenech
 
Funcion exponencial base a
Funcion exponencial base aFuncion exponencial base a
Funcion exponencial base a
jpinedam
 
Panorama de la demostración asistida por ordenador
Panorama de la demostración asistida por ordenadorPanorama de la demostración asistida por ordenador
Panorama de la demostración asistida por ordenador
José A. Alonso
 
Dominio y-rango-funcion
Dominio y-rango-funcionDominio y-rango-funcion
Dominio y-rango-funcion
Moy Aranda
 
Colas
ColasColas
Clase 05 ecuacion lineal de primer orden
Clase 05  ecuacion lineal de primer ordenClase 05  ecuacion lineal de primer orden
Clase 05 ecuacion lineal de primer orden
Jimena Rodriguez
 
Metodos numéricos (1)
Metodos numéricos (1)Metodos numéricos (1)
Metodos numéricos (1)
pedroluislinoponce
 
eduardo hernandez investigacion 1
eduardo hernandez investigacion 1eduardo hernandez investigacion 1
eduardo hernandez investigacion 1
guest79d55c9
 
Ejercicio 3
Ejercicio 3Ejercicio 3
Ejercicio 3
miguelcastromejia
 

La actualidad más candente (19)

Metodología para la solución de problemas
Metodología para la solución de problemasMetodología para la solución de problemas
Metodología para la solución de problemas
 
Distribución binomial
Distribución binomialDistribución binomial
Distribución binomial
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
Distribución binomial
Distribución binomialDistribución binomial
Distribución binomial
 
DISTRIBUCIÓN Binomial
DISTRIBUCIÓN Binomial DISTRIBUCIÓN Binomial
DISTRIBUCIÓN Binomial
 
I1M-T17: El TAD de los conjuntos
I1M-T17: El TAD de los conjuntosI1M-T17: El TAD de los conjuntos
I1M-T17: El TAD de los conjuntos
 
Funciones exponenciales
Funciones exponencialesFunciones exponenciales
Funciones exponenciales
 
Tema 23: Técnicas de diseño descendente de algoritmos
Tema 23: Técnicas de diseño descendente de algoritmosTema 23: Técnicas de diseño descendente de algoritmos
Tema 23: Técnicas de diseño descendente de algoritmos
 
Dominioycodominio
DominioycodominioDominioycodominio
Dominioycodominio
 
Más sobre funciones
Más sobre funcionesMás sobre funciones
Más sobre funciones
 
Tema4 funcs elementales_3
Tema4 funcs elementales_3Tema4 funcs elementales_3
Tema4 funcs elementales_3
 
Funcion exponencial base a
Funcion exponencial base aFuncion exponencial base a
Funcion exponencial base a
 
Panorama de la demostración asistida por ordenador
Panorama de la demostración asistida por ordenadorPanorama de la demostración asistida por ordenador
Panorama de la demostración asistida por ordenador
 
Dominio y-rango-funcion
Dominio y-rango-funcionDominio y-rango-funcion
Dominio y-rango-funcion
 
Colas
ColasColas
Colas
 
Clase 05 ecuacion lineal de primer orden
Clase 05  ecuacion lineal de primer ordenClase 05  ecuacion lineal de primer orden
Clase 05 ecuacion lineal de primer orden
 
Metodos numéricos (1)
Metodos numéricos (1)Metodos numéricos (1)
Metodos numéricos (1)
 
eduardo hernandez investigacion 1
eduardo hernandez investigacion 1eduardo hernandez investigacion 1
eduardo hernandez investigacion 1
 
Ejercicio 3
Ejercicio 3Ejercicio 3
Ejercicio 3
 

Similar a T2 tutorial de lisp completo-grupo6

ADA 4
ADA 4ADA 4
Apunte del Lenguaje LISP
Apunte del Lenguaje LISPApunte del Lenguaje LISP
Apunte del Lenguaje LISP
Prof Matias Garcia
 
ADA 4
ADA  4ADA  4
Propiedades de numerosentero
Propiedades de numerosenteroPropiedades de numerosentero
Propiedades de numerosentero
alicia velez stella
 
Ada 4 muvb
Ada 4 muvbAda 4 muvb
REGLAS PARA RESOLBER OPERASIONES CONBINADAS
REGLAS PARA RESOLBER  OPERASIONES CONBINADASREGLAS PARA RESOLBER  OPERASIONES CONBINADAS
REGLAS PARA RESOLBER OPERASIONES CONBINADAS
Nicol guevara
 
CLASE 01 - numeros enteros.pdf
CLASE 01 - numeros enteros.pdfCLASE 01 - numeros enteros.pdf
CLASE 01 - numeros enteros.pdf
EDWINCENTENO12
 
Propiedad y operaciones con numeros enteros
Propiedad y operaciones con numeros enterosPropiedad y operaciones con numeros enteros
Propiedad y operaciones con numeros enteros
alicia velez stella
 
Manual_Mysql Query Browser
Manual_Mysql Query BrowserManual_Mysql Query Browser
Manual_Mysql Query Browser
Magno Raymundo Diaz
 
2 eso matematicas - ud01
2 eso matematicas - ud012 eso matematicas - ud01
2 eso matematicas - ud01
Angel Garcia Diaz
 
ADAS 4 - Funciones de la hoja de cálculo
ADAS 4  -  Funciones de la hoja de cálculoADAS 4  -  Funciones de la hoja de cálculo
ADAS 4 - Funciones de la hoja de cálculo
Adrian Manzanero Martin
 
Banco de preguntas del examen enes
Banco de preguntas del examen enesBanco de preguntas del examen enes
Banco de preguntas del examen enes
Edgar Chasipanta
 
Banco de preguntas del examen enes
Banco de preguntas del examen enesBanco de preguntas del examen enes
Banco de preguntas del examen enes
Carlos Alfredo Malavé Carrera
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
Grabiel Alvarez
 
Coahuila mate-secundaria-ejercicios-sem-1-web
Coahuila mate-secundaria-ejercicios-sem-1-webCoahuila mate-secundaria-ejercicios-sem-1-web
Coahuila mate-secundaria-ejercicios-sem-1-web
nicteromero1
 
Numeros enteros
Numeros enterosNumeros enteros
Numeros enteros
valandar
 
Mat5 t6 numeros enteros - division
Mat5 t6   numeros enteros - divisionMat5 t6   numeros enteros - division
Mat5 t6 numeros enteros - division
Robert Araujo
 
Division enteros
Division enterosDivision enteros
Division enteros
xwedercnjsx
 
Ada 4 funciones de la hoja de cálculo
Ada 4   funciones de la hoja de cálculoAda 4   funciones de la hoja de cálculo
Ada 4 funciones de la hoja de cálculo
Adrian Manzanero Martin
 
2do. año Leyes de signos, Potenciación, Función lineal.pptx
2do. año Leyes de signos, Potenciación, Función lineal.pptx2do. año Leyes de signos, Potenciación, Función lineal.pptx
2do. año Leyes de signos, Potenciación, Función lineal.pptx
AlAndrsGonzlezPea
 

Similar a T2 tutorial de lisp completo-grupo6 (20)

ADA 4
ADA 4ADA 4
ADA 4
 
Apunte del Lenguaje LISP
Apunte del Lenguaje LISPApunte del Lenguaje LISP
Apunte del Lenguaje LISP
 
ADA 4
ADA  4ADA  4
ADA 4
 
Propiedades de numerosentero
Propiedades de numerosenteroPropiedades de numerosentero
Propiedades de numerosentero
 
Ada 4 muvb
Ada 4 muvbAda 4 muvb
Ada 4 muvb
 
REGLAS PARA RESOLBER OPERASIONES CONBINADAS
REGLAS PARA RESOLBER  OPERASIONES CONBINADASREGLAS PARA RESOLBER  OPERASIONES CONBINADAS
REGLAS PARA RESOLBER OPERASIONES CONBINADAS
 
CLASE 01 - numeros enteros.pdf
CLASE 01 - numeros enteros.pdfCLASE 01 - numeros enteros.pdf
CLASE 01 - numeros enteros.pdf
 
Propiedad y operaciones con numeros enteros
Propiedad y operaciones con numeros enterosPropiedad y operaciones con numeros enteros
Propiedad y operaciones con numeros enteros
 
Manual_Mysql Query Browser
Manual_Mysql Query BrowserManual_Mysql Query Browser
Manual_Mysql Query Browser
 
2 eso matematicas - ud01
2 eso matematicas - ud012 eso matematicas - ud01
2 eso matematicas - ud01
 
ADAS 4 - Funciones de la hoja de cálculo
ADAS 4  -  Funciones de la hoja de cálculoADAS 4  -  Funciones de la hoja de cálculo
ADAS 4 - Funciones de la hoja de cálculo
 
Banco de preguntas del examen enes
Banco de preguntas del examen enesBanco de preguntas del examen enes
Banco de preguntas del examen enes
 
Banco de preguntas del examen enes
Banco de preguntas del examen enesBanco de preguntas del examen enes
Banco de preguntas del examen enes
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Coahuila mate-secundaria-ejercicios-sem-1-web
Coahuila mate-secundaria-ejercicios-sem-1-webCoahuila mate-secundaria-ejercicios-sem-1-web
Coahuila mate-secundaria-ejercicios-sem-1-web
 
Numeros enteros
Numeros enterosNumeros enteros
Numeros enteros
 
Mat5 t6 numeros enteros - division
Mat5 t6   numeros enteros - divisionMat5 t6   numeros enteros - division
Mat5 t6 numeros enteros - division
 
Division enteros
Division enterosDivision enteros
Division enteros
 
Ada 4 funciones de la hoja de cálculo
Ada 4   funciones de la hoja de cálculoAda 4   funciones de la hoja de cálculo
Ada 4 funciones de la hoja de cálculo
 
2do. año Leyes de signos, Potenciación, Función lineal.pptx
2do. año Leyes de signos, Potenciación, Función lineal.pptx2do. año Leyes de signos, Potenciación, Función lineal.pptx
2do. año Leyes de signos, Potenciación, Función lineal.pptx
 

Más de Hiper S.A.

Silabo inteligencia artificia2012_1
Silabo inteligencia artificia2012_1Silabo inteligencia artificia2012_1
Silabo inteligencia artificia2012_1
Hiper S.A.
 
S7 fundamentos de sistemas expertos-grupo6
S7 fundamentos de sistemas expertos-grupo6S7 fundamentos de sistemas expertos-grupo6
S7 fundamentos de sistemas expertos-grupo6
Hiper S.A.
 
S5 métodos de búsquedas informados-grupo6
S5 métodos de búsquedas informados-grupo6S5 métodos de búsquedas informados-grupo6
S5 métodos de búsquedas informados-grupo6
Hiper S.A.
 
S6 métodos de búsqueda para juegos hombre máquina-grupo6
S6 métodos de búsqueda para juegos hombre máquina-grupo6S6 métodos de búsqueda para juegos hombre máquina-grupo6
S6 métodos de búsqueda para juegos hombre máquina-grupo6
Hiper S.A.
 
S4 métodos de búsqueda a ciegas-grupo6
S4 métodos de búsqueda a ciegas-grupo6S4 métodos de búsqueda a ciegas-grupo6
S4 métodos de búsqueda a ciegas-grupo6
Hiper S.A.
 
S3 métodos de búsqueda en un espacio de estado-grupo6
S3 métodos de búsqueda en un espacio de estado-grupo6S3 métodos de búsqueda en un espacio de estado-grupo6
S3 métodos de búsqueda en un espacio de estado-grupo6
Hiper S.A.
 
S2 fundamentos de la inteligencia artificial-grupo6
S2 fundamentos de la inteligencia artificial-grupo6S2 fundamentos de la inteligencia artificial-grupo6
S2 fundamentos de la inteligencia artificial-grupo6
Hiper S.A.
 
S1 clasificación de problemas algorítmicos-grupo6
S1 clasificación de problemas algorítmicos-grupo6S1 clasificación de problemas algorítmicos-grupo6
S1 clasificación de problemas algorítmicos-grupo6
Hiper S.A.
 

Más de Hiper S.A. (8)

Silabo inteligencia artificia2012_1
Silabo inteligencia artificia2012_1Silabo inteligencia artificia2012_1
Silabo inteligencia artificia2012_1
 
S7 fundamentos de sistemas expertos-grupo6
S7 fundamentos de sistemas expertos-grupo6S7 fundamentos de sistemas expertos-grupo6
S7 fundamentos de sistemas expertos-grupo6
 
S5 métodos de búsquedas informados-grupo6
S5 métodos de búsquedas informados-grupo6S5 métodos de búsquedas informados-grupo6
S5 métodos de búsquedas informados-grupo6
 
S6 métodos de búsqueda para juegos hombre máquina-grupo6
S6 métodos de búsqueda para juegos hombre máquina-grupo6S6 métodos de búsqueda para juegos hombre máquina-grupo6
S6 métodos de búsqueda para juegos hombre máquina-grupo6
 
S4 métodos de búsqueda a ciegas-grupo6
S4 métodos de búsqueda a ciegas-grupo6S4 métodos de búsqueda a ciegas-grupo6
S4 métodos de búsqueda a ciegas-grupo6
 
S3 métodos de búsqueda en un espacio de estado-grupo6
S3 métodos de búsqueda en un espacio de estado-grupo6S3 métodos de búsqueda en un espacio de estado-grupo6
S3 métodos de búsqueda en un espacio de estado-grupo6
 
S2 fundamentos de la inteligencia artificial-grupo6
S2 fundamentos de la inteligencia artificial-grupo6S2 fundamentos de la inteligencia artificial-grupo6
S2 fundamentos de la inteligencia artificial-grupo6
 
S1 clasificación de problemas algorítmicos-grupo6
S1 clasificación de problemas algorítmicos-grupo6S1 clasificación de problemas algorítmicos-grupo6
S1 clasificación de problemas algorítmicos-grupo6
 

Último

Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
LuanaJaime1
 
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBALMATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
Ana Fernandez
 
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Ani Ann
 
Qué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptxQué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptx
saradocente
 
PLAN 365 Presentación Gobierno 2024 (1).pdf
PLAN 365 Presentación Gobierno 2024  (1).pdfPLAN 365 Presentación Gobierno 2024  (1).pdf
PLAN 365 Presentación Gobierno 2024 (1).pdf
ElizabethLpez634570
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
arianet3011
 
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.pptEjercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
eliseo membreño
 
Gracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdfGracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdf
Ani Ann
 
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Alejandrino Halire Ccahuana
 
La filosofía presocrática y los filosofos más relvantes del periodo.
La filosofía presocrática y los filosofos más relvantes del periodo.La filosofía presocrática y los filosofos más relvantes del periodo.
La filosofía presocrática y los filosofos más relvantes del periodo.
DobbieElfo
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Juan Martín Martín
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
https://gramadal.wordpress.com/
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
LuanaJaime1
 
Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.
https://gramadal.wordpress.com/
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
johnyamg20
 

Último (20)

Presentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdfPresentación de proyecto en acuarela moderna verde.pdf
Presentación de proyecto en acuarela moderna verde.pdf
 
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBALMATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
 
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
 
Qué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptxQué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptx
 
PLAN 365 Presentación Gobierno 2024 (1).pdf
PLAN 365 Presentación Gobierno 2024  (1).pdfPLAN 365 Presentación Gobierno 2024  (1).pdf
PLAN 365 Presentación Gobierno 2024 (1).pdf
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
 
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.pptEjercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
 
Gracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdfGracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdf
 
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
 
La filosofía presocrática y los filosofos más relvantes del periodo.
La filosofía presocrática y los filosofos más relvantes del periodo.La filosofía presocrática y los filosofos más relvantes del periodo.
La filosofía presocrática y los filosofos más relvantes del periodo.
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
 
Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.
 
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
 

T2 tutorial de lisp completo-grupo6

  • 1. INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 2. • Para salir escriba (exit) • Pruebe un comando de ejemplo como la multiplicación : (* 5 6 20) => 600 • La anterior instrucción hará una multiplicación de los tres números devolviendo 600 como resultado. • Tenemos 2 tipos de datos: Atómicos y Listas 2 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 3. b,4, color-casa ,etc. Al evaluar un tipo de dato atómico, nos devuelve el valor que se le ha asignado. Los números son un caso especial, siempre devuelven el mismo valor. 20 = > 20 Si ponemos “edad-hermano” sin definirla con un valor, devuelve: edad-hermano => Error (variable not defined) Se asigna un valor con el comando: (setq edad-hermano 19)=> 19 edad-hermano => 19 Existen palabras reservadas como nil , T, etc. No se distinguen mayúscula y minúsculas: las variables ola y Ola son la misma. 3 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 4. (b), ( * 9 8) , (casa ( silla mesa e) j ), (), nil • nil es a la vez un valor atómico y una lista : () • La evaluación de una lista siempre invoca una función. (nombre-de-la-función argumento1…argumento n) (* 50 10) => 5 (e 45,46,47) => Error (function not defined) (+ edad-hermano 8) => 27 • Cuando evaluamos una lista, primero evaluamos los argumentos para después aplicar la función 4 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 5. • Lisp incluye operadores como +, - , * , / • Además, incluye varias operaciones importantes.  Cons construye una lista de datos con una cola. (cons 10 (cons 12 nil)) => (10 12)  Hay que tener en cuenta que el valor de la cola que significa 'nada' es nulo.  Si probamos con átomos que no están reservados. (cons Jose nil) => Error: variable a is not defined. ¿Por qué sale ese error? 5 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 6. Tenemos que decirle al intérprete que no evalúe al átomo Jose. Para ello se pone adelante ‘ (cons ‘Jose nil) => (JOSE) De forma abreviada se puede aplicar a una lista completa : (cons ‘Jose ‘(Pepe Marta Carlos ))=> (JOSE PEPE MARTA CARLOS) Veremos diferencias entre list y append. (list ‘Jose ‘Marta ‘Carlos) => (JOSE MARTA CARLOS) (list ‘Jose ‘(Marta Carlos)) => (JOSE (MARTA CARLOS)) (append ‘(Jose Marta) ‘(Carlos Carmen))=> (JOSE MARTA CARLOS CARMEN) La diferencia es que append, usa a listas como argumentos para formar otra lista. 6 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 7. Si queremos listar, pero uno de los elementos a listar es resultado de una operación, se pondrá entre paréntesis. Por ejemplo: (list ‘Jose ‘24 (* edad-hermano 3) ‘ Marta ‘24) => (JOSE 24 75 MARTA 24) Una coma dentro de un par de paréntesis antepuesto por una apóstrofe, le dice a Lisp que, tiene evaluar lo que le sigue a la coma. Por ejemplo: ‘(Jose 24 ,(* edad-hermano 3) Marta 24)=> (JOSE 24 75 MARIA 24) 7 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 8. Una vez que tenemos una lista construida, ¿Cómo accedemos a los miembros de la lista? • first : Primero de una lista. (first ‘(Jose Marta Carlos)) => JOSE (first ‘((Jose Marta Carlos) Carmen) )=> (JOSE MARTA CARLOS) • rest : Toda la lista menos el primer elemento (rest ‘(Jose Marta Carlos)) => (MARTA CARLOS) (rest ‘((Jose Marta Carlos) Carmen) )=> (CARMEN) • car y cdr se pueden combinar (caar '((Jose Marta ​) Carmen Miguel)) => JOSE (cdar '((Jose Marta ​) Carmen Miguel)) => (MARTA) Se tiene que trabajar desde la derecha hacia la izquierda. 8 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 9. • Por ejemplo, si escribimos: (setq listaPrueba ‘(Ana Carla Patricia)) => (ANA CARLA PATRICIA) (cons ‘Marcos listaPrueba) => (MARCOS ANA CARLA PATRICIA) listaPrueba => (ANA CARLA PATRICIA) • No tiene efectos secundarios, la lista no cambió. Necesitamos setq para cambiar el valor de un átomo. • setf es una versión de setq que tiene una función como primer argumento. (setf (cadr listaPrueba) ‘Antonio) => ANTONIO listaPrueba => (ANA ANTONIO PATRICIA) 9 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 10. • A continuación veremos 2 tipos de igualdad (eq ‘Marta ‘Carlos) => nil (eq ‘(jose) ‘(Jose)) => nil (eq ‘Jose ‘JoSe) => T (equal ‘Carlos ‘Carlos) => T (equal ‘(Marta) ‘(Marta)) => T (equal ‘(alumno profesor) ‘(alumno profesor)) => T • (equal x, y) es T cuando (eq x y) es verdadero y cuando las cosas se escriben iguales son verdaderas . 10 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 11. • ¿Se puede el tratar a una lista como un conjunto, es decir, sin preservar el orden? (union ‘(Marta Carla) ‘(Marta Luis Juan)) => (JUAN LUIS MARTA CARLA) (union ‘((Marta) (Carmen)) ‘((Marta))) => ((MARTA) (MARTA) (CARMEN)) (union ‘((Marta) (Carmen)) ‘((Marta)) :test ‘equal) => ((MARTA) (CARMEN)) • La condición de prueba para determinar si los 2 elementos en el conjunto son los mismos es la función equal. (adjoin ‘Marta ‘(Marta Carla Juan)) => (MARTA CARLA JUAN) (set-difference ‘(Juan Marta Carla ) ‘(Marta Pedro Carla)) => (JUAN) • adjoin y set-difference también pueden usar :test ‘equal. Incluso puede proporcionar su propia función. 11 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 12. (length ‘(Richard Cecilia Alonso)) => 3 (atom ‘1) => T (atom ‘(Richard Cecilia Alonso)) => NIL (listp ‘inteligencia) => NIL (listp ‘(IA Modelos Redes)) => T 12 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 13. (<= Alonso (and Bruno Carmen)) (not (not Daniel)) (or Pablo (not Pedro) Marcos) (list ‘<= ‘Alonso (list ‘and ‘Bruno ‘Carmen)) => (<= ALONSO (AND BRUNO CARMEN)) (list ‘not (list ‘not ‘Daniel)) => (NOT (NOT DANIEL)) (list ‘or ‘Pablo (list ‘not ‘Pedro) ‘Marcos) => (OR PABLO (NOT PEDRO) MARCOS) Tener en cuenta que los operadores KIF =>, <=, <=>, and, or, not serán siempre el primer elemento de la lista. 13 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 14. (defun <nombre> <documentación-de-cadena> (<argumentos>) <cuerpo>) (defun cubo (dato1) (* dato1 dato1 dato1)) cubo 6 => 216 Tenga en cuenta que no tenemos que citar a ninguno de los argumentos de defun. Se atiende de forma automática. La evaluación de una función para un conjunto de argumentos como resultado en la última expresión valuada en el función de seguimiento. 14 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 15. (if <expresión> <entonces - expresión> <de lo contrario - expresión>) Por ejemplo: setq dat1 5 => 5 setq dat2 6 => 6 (if (> dat1 dat2) (- dat1 dat2) (* dat1 dat2)) => 30 (if (> 3 4) (+ 3 4) (- 3 4)) => -1 (if (eq 3 3) (+ 20 1) (/ 10 2)) => 21 15 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 16. La evaluación de cond evalúa las pruebas hasta que una de ellas se evalúe como verdadera. A continuación, se evalúa cada uno de las formas adecuadas; la última evaluación es el valor de toda la función cond. Por ejemplo: setq listaN ‘(25 12 100 20) => (25 12 100 20) listaN => (25 12 100 20) car listaN => 25 atom listaN => NIL listp listaN => T ( cond ( (atom listaN) NIL) ((listp listaN) (car listaN)) (T NIL) ) => 25 16 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 17. 17 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 18. 18 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 19. 19 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 20. 20 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 21. 21 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 22. 22 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 23. (and <form1> <form2>….<formn>) • Evalúa a nil tan pronto como uno de los <formi> sea nulo. De lo contrario se evalúa hasta <formn> (or <form1> <form2>….<formn>) • Evalúa al primer argumento no nulo. Si no hay ninguno evalúa a cero. (not <form>) y (null <form>) son idénticos. • Por lo general, utilizan este último cuando el resultado debería ser una lista. 23 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 24. 24 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 25. (let ((<var1> <init1>) (<var2> <init2>)…)<body> ) • Declarar las variables locales. Lo mejor es declarar las variables antes de usarlas. (dotimes (<contador> <limite> <result>)<body>) (let ((sum 10)) (dotimes (i 10 sum ) (setq sum (- sum 1)))) (let ((sumatoria 0)) (dotimes (i 20 sumatoria )(setq sumatoria (+ sumatoria i)))) 25 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 26. 26 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 27. (dolist (<var> <initlist> <result) <body>) (do ((<var1> <init1> <increment1>)(<var2> <init2> <increment2>) …)(<termination-test> <result>) <body>) • Combinaremos let and dolist (let ((acuSuma 0)) (dolist (indice ‘(1 2 3 4 5 6 7) acuSuma) (setq acuSuma (+ acuSuma indice)) ) ) 27 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 28. 28 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 29. • Nada nuevo en esta sección (defun factorial (numero)(if (eq numero 1) 1 (* numero (factorial (- numero 1))) )) (factorial 5) -> 120 29 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 30. 30 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 31. 31 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 32. • (mapcar <nombre-función><lista>) - Mapcar aplica la función a cada elemento de lista y devuelve una lista de los resultados. (mapcar ‘atom ‘(alumno profesor (a b) )) => (T T nil ) (defun factorial (numero)(if (eq numero 1) 1 (* numero (factorial (- numero 1))) )) (mapcar ‘factorial ‘(1 3 6)) => (1 6 720) • Otras Operaciones de listas: remove-if, remove-if-not, some, every, search, subseq, length 32 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 33. 33 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 34. 34 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 35. • Una cadena en Lisp es técnicamente una serie de caracteres. • Tendrá que utilizar operadores especiales para trabajar con cadenas: concatenar, subseq, de búsqueda. • El código de ejemplo incluye la funcionalidad suficiente para que no deberían tener que preocuparse sobre las cadenas Además de la salida de los resultados de su razonador. • La única cosa a tener en cuenta es cuando usted está incluir una cita en el html que enviar de vuelta al cliente. Sólo asegúrese de usar una para escapar de cualquier tales citas. Un ejemplo aparece en la función myfrontpage. 35 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 36. • (print <form>) imprime tanto la evaluación de <form> y vuelve a la evaluación de <form>. • Es útil para la depuración. • princ, print1, print todo trabajo es básicamente lo mismo pero con pequeñas diferencias. 36 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 37. (format <destination> <control-string> <optionalarguments>) <destination>: imprime en la línea de comandos Nil No imprime nada pero retorna cadenas sino imprime en el flujo de <destination> <control-string>: Al igual que printf/sprintf en C. Incluye marcadores de posición para los argumentos 37 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 38. <optional-arguments>: Los argumentos que se llenan en los marcadores de posición en el control de cadena. • ~A: Ascii—cualquier objeto Lisp • ~D: Numeros decimales • ~%: nueva linea • ~~: tilde 38 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 39. 39 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6
  • 40. (trace <func-name1> <func-name2> … <funcnamen>) • Cada vez que una de estas funciones se evalúa, Lisp imprime el nombre de la función y los argumentos dado en la terminal. Cada vez que una las funciones retornen salidas, Lisp imprime lo que su valor de retorno era. Llamar a remontar varias veces se sumará a la lista de funciones. • Para desactivar el seguimiento de una función foo y bar, use (untrace foo bar). Para desactivar todo el rastreo, use (untrace) 40 de 40 INTELIGENCIA ARTIFICIAL - CICLO 2012-I - GRUPO 6