Varios

Solo disponible en BuenasTareas
  • Páginas : 16 (3836 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de marzo de 2011
Leer documento completo
Vista previa del texto
Comandos LISP

1.- INTRODUCCIÓN

1.1.- Introducción

GCLISP entra en el bucle principal del intérprete que va, indefinidamente a leer una expresión sobre el terminal, evaluarla e imprimir el valor de esta evaluación. GCLISP indica que espera la lectura de una expresión imprimiendo el carácter * al comienzo de cada línea. El valor de la evaluación de una expresión se imprime en la líneasiguiente.

C>GLISP // Para cargar el Golden Common Lisp.

Ejemplo:

C> GCLISP
// El sistema responde
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) // Para salir.
C>

1.2.- Objetos básicos

1.2.1.- Átomos

Símbolos:
Los símbolos son cadenas continuasde caracteres (conteniendo al menos un carácter no numérico).

Ejemplo:
- HIELO
- B5
- VAR-AUX
- +

Números:
GCLISP manipula números enteros sobre 16 bits (permitiendo calcular en el intervalo [¡215 + 1; 215 ¡ 1] , i.e. [-32767, 32767]) y números flotantes sobre 128 bits (permitiendo calcular en el intervalo [-1.0F+38, 1.0F+38]).

Ejemplo:
- (+ 4 9)- 13
Cadena de caracteres:
Una cadena de caracteres es una sucesión de caracteres, con o sin huecos, que comienza y termina por dobles comillas.

Ejemplo:
- “10 8 C”
- “JOSE MANUEL”

1.2.2.- Listas

Una lista es una sucesión ordenada, posiblemente vacía, de objetos. Sintácticamente, se compone de un paréntesis abierto, objetos separados por huecos y un paréntesis cerrado.Ejemplo:
- (a b c 1 2 12)
- ( )
- (a b ( x ))

1.3.- Función básica de intérprete:

1.3.1.- Evaluación de los átomos:

El valor de un número es el propio número.
El valor de un símbolo es:
- El número que tenga asignado si actúa como variable numérica.
- La S-Expresión que tenga asignada en caso contrario.
El valor de una cadena de caracteres es lapropia cadena.

Ejemplo:
- CL-USER 1 > setq CAD “A B C” //Para una cadena.
“A B C”
- CL-USER 1 > setq NUM 12 //Para un símbolo.
12

1.3.2.- Evaluación de listas:

Se interpreta como llamadas a funciones.

Ejemplo:
- CL-USER 1 > setq L (+ 2 +3)
5
- CL-USER 2 > setq M (+ 4 5)
9
- CL-USER 3 > setq SUMA(+ L M)
14

2.-DEFINICIÓN DE FUNCIONES:

2.1.- Funciones anónimas

((LAMBDA (var1...varN) s1...sM) val1...valN)

Asocia los valores val1,..., valN a las variables var1,..., varN; evalúa las expresiones s1,..., sM y devuelve el valor de sM.

Ejemplo:
- CL-USER 1 > ((Lambda (M N) (+ M N)) 4 5)
9
- CL-USER 2 > (Mapcar #'(Lambda (N)(* 2 N))'(3 2 4))
(6 4 8)

2.2 Funciones con nombres(DEFUN simb l s1...sN)
Permite definir nuevas funciones.
simb es el nombre de la función definida.
l es la lista de parámetros (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ón.
Devuelve simb.

Ejemplo:
- CL-USER 6 > (Defun Cubo(C)(* C C))
CUBO
CL-USER 7 > (CUBO 3)
9

- CL-USER 8 > (Defun Doble (D)(* 2 D))
DOBLE
CL-USER 9 > (Doble 4)
8

3.- PREDICADOS:

3.1.- Valores lógicos

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

Ejemplo:
- CL-USER 15 > ( )
NIL- CL-USER 16 > Nil
NIL

3.2.- Predicados de tipos

(NULL s) Devuelve T, si s es NIL y NIL, si no.

Ejemplo:
- CL-USER 14 > setq S ()
NIL
- CL-USER 15 > NULL S
T

(ATOM s) Devuelve T, si s es un átomo y NIL, si no.

Ejemplo:
- CL-USER 16 > (Atom 12)
T
- CL-USER 17 > (Atom '(X Y Z))
NIL

(SYMBOLP s) Devuelve T, si s...
tracking img