Вопросы по теме 'clos'

Пытаюсь изучить: переориентацию объектов и общие функции в LISP!
Я читаю практический общий Lisp в результате другого вопроса . Я только что прочитал главы 16 и 17, где вы можете узнать, как LISP управляет объектами. Но после пары лет размышлений о том, как Java управляет объектами, я, кажется, действительно...
685 просмотров
schedule 28.01.2023

Создайте полиномиальный объект из числа, используя класс изменения
Я написал полиномиальный класс в соответствии со строками, описанными в SICP 2.5.3 (за исключением использования defclass). Я хотел бы иметь возможность легко складывать и умножать многочлены и обычные числа, но я не могу заставить класс изменения...
504 просмотров
schedule 03.06.2022

Как найти пакет класса в lisp?
Предположим, я хочу узнать, в каком пакете определен класс, например. скажем (defclass x ()()) определен в p1. Одним из способов может быть получение пакета через (symbol-package 'x). проблема с этим решением заключается в том, что x экспортируется...
214 просмотров
schedule 21.03.2023

Переходные классы в CLOS
Есть ли стандартный способ создать переходный класс в CLOS; то есть класс, который может быть собран после того, как все его экземпляры мертвы? В SBCL я попробовал (setf test (defclass #:foo () ())) , т.е. использовал неинтернированный символ,...
158 просмотров
schedule 24.04.2024

common lisp: значение слота для структур defstruct
В общем lisp, что я могу использовать для доступа к слоту структуры, используя имя/символ слота? Я хочу (defstruct point (x 0) (y 0)) (defmacro -> (struct slot) `(slot-value ,struct ,slot)) (setf p (make-point)) (setf (slot-value p 'x)...
2718 просмотров
schedule 02.11.2022

Вызов другого перегруженного метода в Лиспе
Я не мог узнать, возможно ли это, и просто использовал (довольно уродливый) обходной путь. Предположим, у нас есть структура класса, как показано ниже: (defclass a () ()) (defclass b (a) ()) и метод: (defmethod print-object ((a1 a)...
229 просмотров
schedule 11.07.2023

Средства доступа к слотам CLOS: чтение, но не запись
У меня есть список имен слотов объекта CLOS: (DEFCLASS TRIAL-DATA (STANDARD-OBJECT) ((A-DATUM :ACCESSOR A-DATUM :INITARG :A-DATUM :INITFORM NIL) (BOTH-DATA :ACCESSOR BOTH-DATA :INITARG :BOTH-DATA :INITFORM 0) (CUMULATIVE-DATA :ACCESSOR...
476 просмотров
schedule 24.06.2023

CLOS make-instance работает очень медленно и вызывает исчерпание кучи в SBCL
Я пишу многоархитектурный ассемблер / дизассемблер на Common Lisp (SBCL 1.1.5 в 64-битном Debian GNU / Linux), в настоящее время ассемблер производит правильный код для подмножества x86-64. Для сборки ассемблерного кода x86-64 я использую...
957 просмотров
schedule 24.08.2023

Использование экземпляров класса CLOS в качестве ключей хеш-таблицы?
У меня есть следующий класс: (defclass category () ((cat-channel-name :accessor cat-channel-name :initarg :cat-channel-name :initform "" :type string :documentation "Name of the channel of this category") (cat-min :accessor...
382 просмотров
schedule 16.08.2022

Как я могу передать объект суперкласса конструктору подкласса?
Допустим, у меня есть класс A с парой слотов: (defclass a () ((a-1 :initarg :a-1) (a-2 :initarg :a-2))) И класс B , наследуемый от A : (defclass b (a) ((b-1 :initarg :b-1))) Если я хочу создать экземпляр B ,...
199 просмотров
schedule 29.08.2022

Подробное руководство по распространенным типам lisp
Может быть, этот вопрос слишком общий, тем не менее, я попробую: есть ли какое-нибудь исчерпывающее руководство по типам в common lisp? Я немного запутался в этой теме: Почему непримитивные типы, объявленные в make-array :element-type ,...
1042 просмотров
schedule 04.10.2022

Есть ли способ получить слоты класса?
У меня есть такой класс (defclass shape () ((color :initform :black) (thickness :initform 1) (filledp :initform nil) (window :initform nil))) Есть ли в common-lisp функция, как получить список этих слотов, если я знаю только экземпляр...
2304 просмотров
schedule 06.07.2023

Вызов следующего наиболее конкретного метода не работает
Рассмотрим класс account : (defclass account () ((name :initarg :name :reader name) (balance :initarg :balance :initform 0.00 :accessor balance) (interest-rate :allocation :class :initform 0.06 :reader interest-rate)))...
85 просмотров
schedule 04.06.2023

Это ошибка в sbcl?
Почему это происходит в sbcl? Может баг? (defclass myclass () ((s1 :initform '((a . 1) (b . 2))) (s2 :initform '((a . 1) (b . 2))))) (defparameter ins (make-instance 'myclass)) (setf (cdr (assoc 'a (slot-value ins 's1))) 43) ;;...
97 просмотров
schedule 21.04.2023

Множественные метаклассы Common Lisp
Недавно обнаружив активный форк веб-блоков , я хотел бы объединить его с библиотекой ORM mito . Weblocks определяет макрос defwidget , который на практике обертывает defclass следующим образом: (defclass my-class () ((slot))...
332 просмотров
schedule 07.08.2023