LISP - Tipos de Dados

No LISP, as variáveis ​​não são digitadas, mas os objetos de dados sim.

Os tipos de dados LISP podem ser categorizados como.

  • Scalar types - por exemplo, tipos de números, caracteres, símbolos etc.

  • Data structures - por exemplo, listas, vetores, vetores de bits e strings.

Qualquer variável pode receber qualquer objeto LISP como seu valor, a menos que você o tenha declarado explicitamente.

Embora não seja necessário especificar um tipo de dados para uma variável LISP, no entanto, isso ajuda em certas expansões de loop, em declarações de método e algumas outras situações que discutiremos em capítulos posteriores.

Os tipos de dados são organizados em uma hierarquia. Um tipo de dados é um conjunto de objetos LISP e muitos objetos podem pertencer a um desses conjuntos.

o typep predicado é usado para descobrir se um objeto pertence a um tipo específico.

o type-of função retorna o tipo de dados de um determinado objeto.

Especificadores de tipo em LISP

Especificadores de tipo são símbolos definidos pelo sistema para tipos de dados.

matriz fixnum pacote string simples
átomo flutuador nome do caminho vetor simples
bignum função estado aleatório flutuação única
mordeu mesa de hash Razão standard-char
vetor de bits inteiro racional corrente
personagem palavra chave legível corda
[comum] Lista seqüência [string-char]
função compilada flutuação longa flutuação curta símbolo
complexo nada byte assinado t
contras nulo array simples byte sem sinal
flutuação dupla número vetor de bit simples vetor

Além desses tipos definidos pelo sistema, você pode criar seus próprios tipos de dados. Quando um tipo de estrutura é definido usandodefstruct função, o nome do tipo de estrutura torna-se um símbolo de tipo válido.

Exemplo 1

Crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.

(setq x 10)
(setq y 34.567)
(setq ch nil)
(setq n 123.78)
(setq bg 11.0e+4)
(setq r 124/2)

(print x)
(print y)
(print n)
(print ch)
(print bg)
(print r)

Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -

10 
34.567 
123.78 
NIL 
110000.0 
62

Exemplo 2

A seguir, vamos verificar os tipos de variáveis ​​usadas no exemplo anterior. Crie um novo arquivo de código-fonte denominado main. lisp e digite o seguinte código nele.

(defvar x 10)
(defvar y 34.567)
(defvar ch nil)
(defvar n 123.78)
(defvar bg 11.0e+4)
(defvar r 124/2)

(print (type-of x))
(print (type-of y))
(print (type-of n))
(print (type-of ch))
(print (type-of bg))
(print (type-of r))

Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -

(INTEGER 0 281474976710655) 
SINGLE-FLOAT 
SINGLE-FLOAT 
NULL 
SINGLE-FLOAT 
(INTEGER 0 281474976710655)