Деструктировать в LISP
Опубликовано: 10 Января, 2023
Структура — это определяемый пользователем тип данных, который помогает нам объединять различные элементы данных разных типов под одним и тем же именем. В Лиспе defstruct используется для определения структуры нескольких элементов данных разных типов.
Синтаксис:
(defstruct student
name
class
roll-no
birth-date
)
- В приведенном выше объявлении мы определили четыре именованных компонента для структуры student.
- Именованные компоненты принимают в них аргумент через именованные функции.
- Также определена неявная функция с именем copy-book одного аргумента, которая берет экземпляр учащегося и создает другой экземпляр учащегося, который является клоном или копией первого. Эта функция известна как функция копирования.
- Будет создана еще одна неявная функция с именем make-student, конструктор, который создаст структуру данных с четырьмя компонентами, подходящую для использования с функциями доступа.
- Чтобы прочитать или распечатать экземпляры «студента», мы можем использовать синтаксис #S, который сам относится к структуре.
- Чтобы изменить компоненты структуры «студент», мы можем использовать 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) |
Выход: