Деструктировать в LISP

Опубликовано: 10 Января, 2023

Структура — это определяемый пользователем тип данных, который помогает нам объединять различные элементы данных разных типов под одним и тем же именем. В Лиспе defstruct используется для определения структуры нескольких элементов данных разных типов.

Синтаксис:

(defstruct student
name
class
roll-no
birth-date
)
 

  1. В приведенном выше объявлении мы определили четыре именованных компонента для структуры student.
  2. Именованные компоненты принимают в них аргумент через именованные функции.
  3. Также определена неявная функция с именем copy-book одного аргумента, которая берет экземпляр учащегося и создает другой экземпляр учащегося, который является клоном или копией первого. Эта функция известна как функция копирования.
  4. Будет создана еще одна неявная функция с именем make-student, конструктор, который создаст структуру данных с четырьмя компонентами, подходящую для использования с функциями доступа.
  5. Чтобы прочитать или распечатать экземпляры «студента», мы можем использовать синтаксис #S, который сам относится к структуре.
  6. Чтобы изменить компоненты структуры «студент», мы можем использовать self, как мы использовали бы ниже.

Пример:

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)

Выход: