Lección 2: Tipos | Curso de Emacs Lisp

Lección 2: Tipos

;; bool
(stringp "Am I a string?") ;; t es True y nil es False

;; Obtener tipo
(type-of 12)
eq ;; Son el mismo objeto?
eql ;; Son el mismo objeto o número
equal ;; Son parámetros equivalentes
(setq mi-valor '(1 2 3))

(eq 1 1) ;; t
(eq 3.1 3.1) ;; nil, no son iguales a nivel binario
(eq "texto" "texto") ;; nil
(eq '(1 2 3) '(1 2 3)) ;; nil
(eq mi-valor mi-valor) ;; t

(eql 1 1) ;; t
(eql 3.1 3.1) ;; t
(eql "texto" "texto") ;; nil
(eql '(1 2 3) '(1 2 3)) ;; nil
(eql mi-valor mi-valor) ;; t

(equal 1 1) ;; t
(equal 3.1 3.1) ;; t
(equal "texto" "texto") ;; t
(equal '(1 2 3) '(1 2 3)) ;; t
(equal mi-valor mi-valor) ;; t
;; Dos tipos de números

;; Enteros
1

;; Decimal
3.1415

Predicates


(integerp 1) ; t
(integerp 1.0) ; nil
(integerp "Juan") ; nil

(floatp 1.0) ; t
(floatp 1) ; nil
(floatp "Juan") ; nil

(stringp "Juan") ; t
(stringp 1) ; nil
(stringp 1.0) ; nil

(numberp 1) ; t
(numberp 1.0) ; t
(numberp "Juan") ; nil

(zerop 0) ; t
(zerop 1) ; nil

Caracteres

Son solo números.

?A ;; 65
?a ;; 97

?\n ;; 10
?\C-a ;; 1
?\M-a ;; 225

;; Unicode characters

?\u00e4 ;; 228

;; Character equals

(= ?a ?a) ;; t
(= ?a ?b) ;; nil
(= ?a 97) ;; t

(char-equal ?a ?a) ;; t
(char-equal ?a ?b) ;; nil

;; Ignore case
;; case-fold-search
(setq case-fold-search nil)

(= ?a ?A) ;; nil

(setq case-fold-search t)

(= ?a ?A) ;; t

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

No te sientas obligado a realizarme una donación, pero cada aportación me ayuda a mantener el sitio en activo para que continúe existiendo y me motiva a continuar creando nuevo contenido.

Comprame un café
Pulsa sobre la imagen
  • 1 café: Se mantiene el dominio durante 4 meses.
  • 2 cafés: Se liquida 1 mes del Servidor Web.
  • 3 cafés: Se paga 1 mes de Newsletter.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario