Você está aqui: LISP ::: Dicas & Truques ::: Struct (Estruturas, Registros) |
Como criar estruturas em LISPQuantidade de visualizações: 357 vezes |
A linguagem LISP (incluindo a implementação ANSI Common Lisp e a AutoLISP, a versão LISP para o AutoCAD) permite, como a maioria das linguagens de programação, a criação de estruturas. Uma estrutura é um tipo de dados definida pelo usuário, e que permite o agrupamento de dados de tipos diferentes. Podemos pensar em estruturas como se fosse um registro. Na verdade, as linguagens Pascal e Delphi mantém um tipo de dados chamado record. Assim, uma estrutura "aluno" poderia agrupar a matrícula do aluno, o seu nome, sua idade, seu curso, etc, cada informação sendo de um tipo de dados diferente. Como usar a macro defstruct da LISP para criar estruturas A definição de estruturas na linguagem LISP é feita por meio da macro defstruct. Veja, por exemplo, um trecho de código que cria uma estrutura chamada produto: ; Vamos definir a estrutura produto (defstruct produto codigo nome preco ) ; Esta é a função principal (defun principal() ; vamos declarar as variáveis locais que precisamos (let ((p)) ; vamos criar uma nova instância da estrutura produto (setq p (make-produto :codigo 45 :nome "Arroz Tipo 1" Ao executar este código LISP nós teremos o seguinte resultado: Os dados do produto são: #S(PRODUTO :CODIGO 45 :NOME Arroz Tipo 1 :PRECO 8.23) Note como usamos a função make-produto para criar um novo objeto da estrutura produto. Esta função é um construtor criado implicitamente pela linguagem para que possamos criar as novas instâncias da estrutura. Se você observar bem o código anterior você verá que exibimos todo o conteúdo da estrutura produto por meio da variável p. Porém, haverá situações nas quais queremos exibir os valores individuais dos atributos. Veja: ; Vamos definir a estrutura produto (defstruct produto codigo nome preco ) ; Esta é a função principal (defun principal() ; vamos declarar as variáveis locais que precisamos (let ((p)) ; vamos criar uma nova instância da estrutura produto (setq p (make-produto :codigo 45 :nome "Arroz Tipo 1" :preco 8.23)) ; E mostramos o resultado Ao executarmos esta nova versão do código LISP nós teremos o seguinte resultado: O código do produto é 45 O nome do produto é "Arroz Tipo 1" O preço do produto é 8.23 Finalmente, o valor dos atributos das instância de uma estrutura LISP podem ser modificados da seguinte forma: ; Vamos definir a estrutura produto (defstruct produto codigo nome preco ) ; Esta é a função principal (defun principal() ; vamos declarar as variáveis locais que precisamos (let ((p)) ; vamos criar uma nova instância da estrutura produto (setq p (make-produto :codigo 45 :nome "Arroz Tipo 1" :preco 8.23)) ; Vamos mostrar o código do produto (format t "O código do produto é ~D" (produto-codigo p)) Ao executar esta versão final do código nós teremos: O código do produto é 45 O novo código do produto é 87 |
![]() |
Veja mais Dicas e truques de LISP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |