Listado y explicacion de los Comandos en LISP.
Principales comandos que aqui explicaremos: QUOTE, CAR, CDR, CONS, ATOM, EQ, NULL
- Comando QUOTE
FUNCION : QUOTE |
||
NUMERO DE ARGUMENTOS : |
1 |
|
ARGUMENTOS : |
Un |
término cualquiera. |
RETORNA : |
El |
argumento. |
EJEMPLOS
OPERACIÓN |
RESULTADO |
||
(QUOTE(ESTA ES UNA PRUEBA)) |
|
|
(ESTA ES UNA PRUEBA) |
(QUOTE((ESTA)(ES UNA)PRUEBA)) |
|
|
((ESTA)(ES UNA)PRUEBA) |
(QUOTE HOLA) |
|
|
HOLA |
(QUOTE(()) |
|
|
() |
Notar que QUOTE devuelve lo mismo que recibe; aparentemente esto no tiene mucho sentido, no obstante, la utilidad de este comando aparece cuando se utiliza, por ejemplo, el comando CAR entre paréntesis, por ejemplo:
(CAR(A B C))
En este caso, CAR buscará el primer elemento de la lista que genere la función A, pero como A no es una función (a menos que se defina como tal) generará un error. La sentencia correcta sería:
(CAR(QUOTE(A B C))
Un error común es escribir algo así:
(CAR(QUOTE ERROR))
Ya que en este caso QUOTE retorna el átomo ERROR, y CAR debe recibir como argumento una lista (ver definición siguiente).
- Comando CAR
FUNCION : CAR |
||||
NUMERO DE ARGUMENTOS : |
1 |
|||
ARGUMENTOS : |
Lista no vacía. |
|||
RETORNA : |
El primer término |
de |
la |
lista. |
EJEMPLOS
OPERACIÓN |
RESULTADO |
(CAR(QUOTE((ESTA) ES UNA PRUEBA))) |
(ESTA) |
(CAR(QUOTE((ESTA ES UNA PRUEBA)))) |
(ESTA ES UNA PRUEBA) |
(CAR (QUOTE(()(ESTA ES UNA PRUEBA)))) |
() |
(CAR(QUOTE (ESTA ES UNA PRUEBA))) |
(ESTA ES UNA PRUEBA) |
Un error común que se comete es algo como lo siguiente:
CAR ((ESTO ES)(UN ERROR))
El primer paréntesis es para indicar que se incluirá el argumento de CAR, lo que no identifica a una lista, luego, en el argumento van dos listas en vez de una, que serían ESTO ES y UN ERROR. Esto se corrige haciendo la llamada:
CAR(((ESTO NO ES)(UN ERROR)))
Generalizando tenemos que cualquier comando que trabaje con una o más listas como argumento debe encerrarlas entre paréntesis, no así con los átomos (ver la aplicación del comando QUOTE).
- Comando CDR
FUNCION |
: CDR |
|||
NUMERO DE ARGUMENTOS |
: |
1 |
||
ARGUMENTOS |
: |
Lista no vacía. |
||
RETORNA |
: |
El resto de la lista |
que |
queda |
|
|
después de borrar |
el |
primer |
|
|
término. |
|
|
EJEMPLOS
OPERACIÓN |
RESULTADO |
|
(CDR(QUOTE(ESTA ES UNA PRUEBA))) |
|
(ES UNA PRUEBA) |
(CDR(QUOTE((ESTA ES)UNA PRUEBA))) |
|
(UNA PRUEBA) |
|
||
(CDR(QUOTE((ESTA ES UNA PRUEBA)))) |
() |
|
(CDR(QUOTE(()(ESTA ES UNA PRUEBA)))) |
((ESTA ES UNA PRUEBA)) |
Las restricciones para CDR son iguales que para CAR.
- Comando CONS
FUNCION |
: CONS |
|
NUMERO DE ARGUMENTOS |
: |
2 |
ARGUMENTOS |
: |
1. Cualquier término; 2. Una |
|
|
Lista cualquiera. |
RETORNA |
: |
Una lista, tal que su CAR es el |
|
|
primer argumento, y su CDR es |
|
|
el segundo argumento. |
EJEMPLOS
OPERACIÓN |
RESULTADO |
(CONS(QUOTE(ESTA ES)QUOTE(UNA PRUEBA))) |
((ESTA ES)UNA PRUEBA) |
(CONS(QUOTE ESTA)(QUOTE())) |
(ESTA) |
- Comando ATOM
FUNCION : ATOM |
||||
NUMERO DE ARGUMENTOS : |
1 |
|||
ARGUMENTOS : |
Cualquier término. |
|||
RETORNA : |
T si el argumento |
es |
un |
átomo; |
|
NIL en otro caso. |
|
|
|
EJEMPLOS
OPERACIÓN |
RESULTADO |
||
(ATOM(QUOTE ABC54)) |
|
|
T |
(ATOM(QUOTE(UN EJEMPLO))) |
|
|
NIL |
ATOM(ABC54) |
|
|
T |
ATOM(ESTO ES UN EJEMPLO) |
|
|
NIL |
- Comando EQ
FUNCION : EQ |
|||
NUMERO DE ARGUMENTOS : |
2 |
||
ARGUMENTOS : |
Dos términos. |
||
RETORNA : |
T si ambos átomos |
son |
iguales; |
|
NIL en otro caso. |
|
|
EJEMPLOS
OPERACIÓN |
RESULTADO |
||
EQ(HOLA HOLA) |
|
|
T |
EQ(HOLA B) |
|
|
NIL |
(EQ(QUOTE HOLA)(QUOTE HOLA)) |
|
|
T |
(EQ(QUOTE G)(QUOTE HOLA)) |
|
|
NIL |
FUNCION : NULL |
||
NUMERO DE ARGUMENTOS : |
1 |
|
ARGUMENTOS : |
Cualquier término. |
|
RETORNA : |
T si el argumento |
es una lista |
|
vacía [()]; NIL en |
otro caso. |
EJEMPLOS
OPERACIÓN |
RESULTADO |
||
NULL(()) |
|
|
T |
NULL((())) |
|
|
NIL |
NULL(ESTA ES UNA PRUEBA) |
|
|
NIL |
(NULL(QUOTE())) |
|
|
T |
0 comentarios