temas selectos de ia 4
DESCRIPTION
Notas de LISP.TRANSCRIPT
![Page 1: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/1.jpg)
Temas Selectos de IALenguajes funcionales: LISP
M.C Said Zamora
![Page 2: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/2.jpg)
Expresiones
• LISP evalúa expresiones definidas por el usuario.
• USER(1): (* 2 (cos 0) (+ 4 6))
• Formas, f(x) equivale a (f x)
![Page 3: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/3.jpg)
Funciones numéricas
• (+ x1 x2 ... xn)
• (* x1 x2 ... xn)
• (- x y)
• (/ x y)
• (rem x y)
• (abs x)
• (max x1 x2 ... xn)
• (min x1 x2 ... xn)
![Page 4: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/4.jpg)
Funciones
• USER(2): (defun double (x) (* x 2))
• USER(3): (double 3)
![Page 5: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/5.jpg)
Recursividad
• (defun factorial (N)
• “Factorial de N."
• (if (= N 1)
• 1
• (* N (factorial (- N 1)))))
![Page 6: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/6.jpg)
Operadores relacionales
• (= x y)
• (/= x y)
• (< x y)
• (> x y)
• (<= x y)
• (>= x y)
![Page 7: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/7.jpg)
Recursividad múltiple
• (defun fibonacci (N)
• "N‘ numero de Fibonacci."
• (if (or (zerop N) (= N 1))
• 1
• (+ (fibonacci (- N 1)) (fibonacci (- N 2)))))
• Zerop es un predicado.
![Page 8: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/8.jpg)
Operadores lógicos y funciones predefinidas
• (1+ x) (+ x 1)
• (1- x) (- x 1)
• (zerop x) (= x 0)
• (plusp x) (> x 0)
• (minusp x) (< x 0)
• (evenp x) (= (rem x 2) 0)
• (oddp x) (/= (rem x 2) 0)
• (or x1 x2 ... xn)
• (and x1 x2 ... xn)
• (not x)
![Page 9: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/9.jpg)
Listas
• Computación simbólica.
• Estructura de datos recursiva.
• Constructor
• Selector
• Reconocedor
![Page 10: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/10.jpg)
Constructores
• Nil
• (cons x L)
• USER(21): (cons 1 (cons 2 nil))
• (quote (2 3 5 7 11 13 17 19))
• '(2 3 5 7 11 13 17 19)
![Page 11: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/11.jpg)
Selectores
• (first '(2 4 8))
• (rest '(2 4 8))
![Page 12: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/12.jpg)
Reconocedores
• USER(29): (null nil)
• T
• USER(30): (null '(1 2 3))
• NIL
• USER(31): (consp nil)
• NIL
• USER(32): (consp '(1 2 3))
• T
![Page 13: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/13.jpg)
Recursividad estructural
• USER(33): (list-length '(2 3 5 7 11 13 17 19))
• (defun recursive-list-length (L)
• (if (null L)
• 0
• (1+ (recursive-list-length (rest L)))))
![Page 14: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/14.jpg)
• USER(40): (trace recursive-list-length)
• (RECURSIVE-LIST-LENGTH)
• USER(41): (recursive-list-length '(2 3 5 7 11 13 17 19))
• 0: (RECURSIVE-LIST-LENGTH (2 3 5 7 11 13 17 19))
• 1: (RECURSIVE-LIST-LENGTH (3 5 7 11 13 17 19))
• 2: (RECURSIVE-LIST-LENGTH (5 7 11 13 17 19))
• 3: (RECURSIVE-LIST-LENGTH (7 11 13 17 19))
• 4: (RECURSIVE-LIST-LENGTH (11 13 17 19))
• 5: (RECURSIVE-LIST-LENGTH (13 17 19))
• 6: (RECURSIVE-LIST-LENGTH (17 19))
• 7: (RECURSIVE-LIST-LENGTH (19))
• 8: (RECURSIVE-LIST-LENGTH NIL)
• 8: returned 0
• 7: returned 1
• 6: returned 2
• 5: returned 3
• 4: returned 4
• 3: returned 5
• 2: returned 6
• 1: returned 7
• 0: returned 8
• 8
![Page 15: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/15.jpg)
Símbolos
• No diferencia mayúsculas y minúsculas
• `t = t
![Page 16: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/16.jpg)
Enésimo
• USER(59): (nth 0 '(a b c d))
• A
• USER(60): (nth 2 '(a b c d))
• C
![Page 17: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/17.jpg)
Member
• USER(64): (member 'b '(hola)) ;
• NIL
• USER(65): (member ‘y '( y hola)) ;
• ‘(y hola)
![Page 18: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/18.jpg)
• (= x y)
• (eq x y)
• (eql x y)
• (equal x y)
• (equalp x y)
![Page 19: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/19.jpg)
Reverse L
• USER(1): (reverse '(1 2 3 4))
• (4 3 2 1)
• USER(2): (reverse '(1 (a b) (c d) 4))
• (4 (c d) (a b) 1)
• USER(3): (reverse nil)
• NIL
![Page 20: Temas Selectos de IA 4](https://reader033.vdocuments.mx/reader033/viewer/2022051704/563db79b550346aa9a8c9b05/html5/thumbnails/20.jpg)
Estado del programa, variables.
• (defparameter * contador * 0)
• (defparameter *umbral* 4)
• (defun contador ()
• (if (>= (1+ *contador*) * umbral *)
• (setf * contador * 0)
• (setf * contador * (1+ * contador *))))
• (defun valor ()
• *counter*)
• (defun valorumbral ()
• *umbral*)