Destruir en LISP

Una estructura es un tipo de datos definido por el usuario que nos ayuda a combinar diferentes elementos de datos de diferentes tipos bajo el mismo nombre. En Lisp, defstruct se usa para definir una estructura de múltiples elementos de datos de diferentes tipos de datos.

Sintaxis:

(destrucción de lista de clase de
nombre de estudiante , sin fecha de nacimiento )

 

  1. En la declaración anterior, hemos definido cuatro componentes con nombre para la estructura estudiante.
  2. Los componentes con nombre toman el argumento en ellos a través de funciones con nombre.
  3. También se define una función implícita llamada copy-book de un argumento que toma una instancia de estudiante y crea otra instancia de estudiante, que es un clon o copia de la primera. Esta función se conoce como la función de copiadora.
  4. Se creará otra función implícita llamada make-student, un constructor, que creará una estructura de datos con cuatro componentes, adecuada para usar con las funciones de acceso.
  5. Para leer o imprimir las instancias de ‘estudiante’ podemos usar la sintaxis #S que se refiere a una estructura.
  6. Para alterar los componentes de la estructura ‘estudiante’ podemos usar self como usaríamos a continuación.

Ejemplo:

Lisp

; LISP program for destruct
(defstruct student
name
class
roll-no
birth-date
)
  
( setq student1 (make-student :name"Kishan Pandey"
   :class "12" 
   :roll-no "102016114"
   :birth-date "31-08-2002")
)
  
( setq student2 (make-student :name"Sakshi Tripathi"
   :class "12" 
   :roll-no "102016115"
   :birth-date "14-03-2000")
)
(write student1)
(terpri)
(write student2)
(setq student3( copy-student student1))
(setf (student-roll-no student3) 102016116) 
(terpri)
(write-line "A Copy of the first student is:")
(write student3)

Producción:

 

Publicación traducida automáticamente

Artículo escrito por kishanpandeyrkt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *