Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Aprende Lisp Inteligencia Artificial

Enviado por   •  19 de Noviembre de 2018  •  7.085 Palabras (29 Páginas)  •  262 Visitas

Página 1 de 29

...

C> GCLISP

GOLDEN COMMON LISP, Version 1.01

Copyright (C) 1985 by Gold Hill Computers

; Reading file INIT.LSP

Type Alt-H for Help

Top-Level

- (+ 2 3)

5

- (EXIT)

C>

1.2 Los objetos b´asicos

Los objetos que se usan en Lisp se llaman S–expresiones (por “Symbolic expressions”).

Estos objetos se clasifican en los siguientes tipos:

nu´meros

[pic 1]

´atomos s´ımbolos

S–expresiones

cadenas de caracteres

[pic 2] listas

Para referirnos a dichos objetos, usaremos las siguientes abreviaturas: s S–expresi´on a ´atomo

simb s´ımbolo n nu´mero l lista

1.2.1 Los ´atomos

Los s´ımbolos

Los s´ımbolos son cadenas continuas de caracteres (conteniendo al menos un car´acter no num´erico). Por ejemplo, AGUA, A12, VAR-AUX, + son s´ımbolos. Los nu´meros

GCLISP manipula nu´meros enteros sobre 16 bits (permitiendo calcular en el intervalo [−215 + 1,215 − 1] , i.e. [-32767, 32767]) y nu´meros flotantes sobre 128 bits (permitiendo calcular en el intervalo [-1.0F+38, 1.0F+38]).

Las cadenas de caracteres

Una cadena de caracteres es una sucesi´on de caracteres, con o sin huecos, que comienza y termina por dobles comillas. Por ejemplo, "A 1 23" es una cadena de caracteres.

1.2.2 Las listas

Una lista es una sucesi´on ordenada, posiblemente vac´ıa, de objetos. Sinta´cticamente, se compone de un par´entesis abierto, objetos separados por huecos y un par´entesis cerrado. Por ejemplo, (a 1 b), (), (a (b (c))) son listas.

1.3 Funcionamiento b´asico del int´erprete

1.3.1 Evaluacio´n de los ´atomos

El valor de un nu´mero es el propio nu´mero. El valor de un s´ımbolo es:

- el nu´mero que tenga asignado, si actu´a como variable num´erica;

- la S-expresi´on que tenga asignada, en caso contrario.

El valor de una cadena de caracteres es la propia cadena.

1.3.2 Evaluacio´n de las listas

Las listas se interpretan como llamadas a funciones. El primer elemento es el nombre de la funci´on y el resto son los argumentos. Por ejemplo, la lista (+ 2 3), se interpreta como la funci´on + actuando sobre 2 y 3.

---------------------------------------------------------------

2 Definici´on de funciones

2.1 Funciones an´onimas

((LAMBDA (var1...varN) s1...sM) val1...valN) asocia los valores val1,..., valN a las variables var1,..., varN; evalu´a las expresiones s1,..., sM y devuelve el valor de sM.

((LAMBDA (M N) (+ M N)) 2 3) ---> 5

(MAPCAR #’(LAMBDA (N) (* 2 N)) ’(1 2 3)) ---> (2 4 6)

2.2 Funciones con nombres

(DEFUN simb l s1...sN)

permite definir nuevas funciones.

simb es el nombre de la funci´on definida.

l es la lista de par´ametros (argumentos); son variables locales que no afectan a posibles valores previos, en general. Si no hay argumentos, es obligatorio poner ().

s1,..., sN son las expresiones que definen el cuerpo de la funci´on.

Devuelve simb.

- (DEFUN CUADRADO (N) (* N N))

CUADRADO

- (CUADRADO 3)

9

3 Predicados

3.1 Valores l´ogicos

NIL

su valor es NIL y representa “lo falso”. Puede escribirse como ().

T

su valor es T y representa “lo verdadero”.

3.2 Predicados de tipos

(NULL s)

devuelve T, si s es NIL y NIL, si no.

(ATOM s)

Devuelve T, si s es un ´atomo y NIL, si no.

(ATOM 12) ---> T (ATOM ’ABC) ---> T (ATOM "A B") ---> T

(ATOM A) ---> ERROR

(ATOM ’(A B)) ---> NIL (ATOM NIL) ---> T

(SYMBOLP s)

devuelve T, si s es un s´ımbolo y NIL, si no.

(SYMBOLP 12) ---> NIL (SYMBOLP ’ABC) ---> T

(SYMBOLP "A B") ---> NIL

(SYMBOLP A) ---> ERROR

(SYMBOLP ’(A B)) ---> NIL (SYMBOLP NIL) ---> T

(NUMBERP s)

devuelve T, si s es un nu´mero y NIL, si no.

(NUMBERP 123) ---> T

(NUMBERP ’A) ---> NIL

(SETQ A 3) ---> 3

(NUMBERP

...

Descargar como  txt (40.3 Kb)   pdf (122 Kb)   docx (54.2 Kb)  
Leer 28 páginas más »
Disponible sólo en Essays.club