LISP - Personajes
En LISP, los caracteres se representan como objetos de datos de tipo character.
Puede indicar un objeto de carácter que precede a # \ antes del carácter en sí. Por ejemplo, # \ a significa el carácter a.
El espacio y otros caracteres especiales se pueden indicar precediendo # \ antes del nombre del carácter. Por ejemplo, # \ SPACE representa el carácter de espacio.
El siguiente ejemplo demuestra esto:
Ejemplo
Cree un nuevo archivo de código fuente llamado main.lisp y escriba el siguiente código en él.
(write 'a)
(terpri)
(write #\a)
(terpri)
(write-char #\a)
(terpri)
(write-char 'a)
Cuando ejecuta el código, devuelve el siguiente resultado:
A
#\a
a
*** - WRITE-CHAR: argument A is not a character
Caracteres especiales
Common LISP permite usar los siguientes caracteres especiales en su código. Se les llama caracteres semi-estándar.
- #\Backspace
- #\Tab
- #\Linefeed
- #\Page
- #\Return
- #\Rubout
Funciones de comparación de caracteres
Las funciones y operadores de comparación numérica, como <y> no funcionan con caracteres. Common LISP proporciona otros dos conjuntos de funciones para comparar caracteres en su código.
Un conjunto distingue entre mayúsculas y minúsculas y el otro no distingue entre mayúsculas y minúsculas.
La siguiente tabla proporciona las funciones:
Funciones sensibles a mayúsculas y minúsculas | Funciones que no distinguen entre mayúsculas y minúsculas | Descripción |
---|---|---|
char = | char-igual | Comprueba si los valores de los operandos son todos iguales o no, si es así, la condición se convierte en verdadera. |
char / = | char-no-igual | Comprueba si los valores de los operandos son todos diferentes o no, si los valores no son iguales, la condición se convierte en verdadera. |
char < | char-lessp | Comprueba si los valores de los operandos disminuyen monótonamente. |
char> | char-mayorp | Comprueba si los valores de los operandos aumentan monótonamente. |
char <= | char-not-mayorp | Comprueba si el valor de cualquier operando izquierdo es mayor o igual que el valor del siguiente operando derecho; si es así, la condición se convierte en verdadera. |
char> = | char-not-lessp | Comprueba si el valor de cualquier operando de la izquierda es menor o igual que el valor de su operando de la derecha, si es así, la condición se convierte en verdadera. |
Ejemplo
Cree un nuevo archivo de código fuente llamado main.lisp y escriba el siguiente código en él.
; case-sensitive comparison
(write (char= #\a #\b))
(terpri)
(write (char= #\a #\a))
(terpri)
(write (char= #\a #\A))
(terpri)
;case-insensitive comparision
(write (char-equal #\a #\A))
(terpri)
(write (char-equal #\a #\b))
(terpri)
(write (char-lessp #\a #\b #\c))
(terpri)
(write (char-greaterp #\a #\b #\c))
Cuando ejecuta el código, devuelve el siguiente resultado:
NIL
T
NIL
T
NIL
T
NIL