Вопросы по теме '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