Вопросы по теме 'clos'
Сделать закрытые объекты доступными для печати в lisp
Если вы хотите сделать CLOS-объекты в common lisp пригодными для печати (читаемыми для печати), как вы можете это сделать, не используя ничего, кроме печати и чтения.
3069 просмотров
schedule
21.03.2022
Использование объектов Common Lisp CLOS в качестве ключей в хеш-таблице?
Я хотел бы использовать CLOS-объекты Common Lisp в качестве ключей в хэш-таблице. Я думал, что это будет так просто:
(defclass my-class () ((a :accessor a :initarg a)))
(defun my-class= (my-instance-1 my-instance-2)
(equal (a my-instance-1) (a...
915 просмотров
schedule
11.05.2023
Свободная переменная Common Lisp
Можно ли использовать неинициализированную переменную в качестве аргумента функции? Для задания я должен использовать CLOS для написания системы семантической сети, и мой профессор включил тестовую функцию для проверки нашего вывода, и одна из них...
2963 просмотров
schedule
15.05.2022
Существует ли общий метод клонирования объектов CLOS?
Я ищу способ поверхностного клонирования объектов CLOS, чтобы созданный объект был одного типа с одинаковыми значениями в каждом слоте, но с новым экземпляром. Самое близкое, что я нашел, это стандартная копирующая структура функции, которая делает...
2920 просмотров
schedule
26.09.2022
Расширить предложение eql оператора defmethod, чтобы принять любую функцию?
Несколько дней назад я узнал о предложении eql в синтаксисе спецификации аргумента defmethod . Гиперспецификация defmethod дает понять, что наличие токена eql является фундаментальная часть синтаксиса. Например, я получаю сообщение об ошибке,...
264 просмотров
schedule
11.03.2023
Структура метода Lisp Def
(defmethod update :before ((a AGENT) (e UPDATE))
(when (null (timestamps a))
(push 0 (pls a))
(push 0 (fitnesses a)))
(push (timestamp e) (timestamps a))
(push (price e) (revalprices a))
(preprocess a e)
(format T ":BEFORE completed...
182 просмотров
schedule
19.03.2023
CLOS: форматировать список аргументов инициализации для make-instance
Я уже некоторое время ломаю голову над этим - может быть, кто-нибудь может пролить свет на то, как форматировать список аргументов инициализации для make-instance из вложенного списка, содержащего подсписки (значение ключа). Пример:...
60 просмотров
schedule
21.07.2022
Приводит ли этот код CLOS к ошибке времени выполнения или времени компиляции в Common Lisp?
Допустим, я пишу следующий фрагмент кода (пожалуйста, простите за любые ошибки, я новичок в Lisp и не могу запустить CL на этой машине)
(defclass o () ())
(defclass a (o) ())
(defclass b (o) ())
(defgeneric m (x))
(defmethod m ((x o))
(print...
152 просмотров
schedule
28.09.2023
Использовать конструктор суперкласса?
Итак, у меня есть занятия
(defclass foo ()
((a :initarg :a :accessor a)
(b :initarg :b :accessor b)))
(defclass bar (foo)
((c :initarg :c)))
И конструктор
(defun make-foo (a b)
(make-instance 'foo :a a :b b))
Есть ли...
127 просмотров
schedule
22.02.2023
Поддерживает ли Java диспетчеризацию для конкретных реализаций на основе типов нескольких объектов, как это делает Lisp?
Вчитываясь в Lisp, в настоящее время на этой странице ( http://landoflisp.com ), я нашел следующее утверждение на втором последний абзац на странице, которая открывается при переходе по ссылке CLOS GUILD :
В этом примере важно отметить, что...
133 просмотров
schedule
29.11.2022
свободный слот при получении списка приоритетов классов?
Почему я не могу получить простой список приоритетов классов в sbcl?
* (sb-mop::class-precedence-list (find-class 'cons));;works
(#<BUILT-IN-CLASS CONS> #<BUILT-IN-CLASS LIST> #<SB-PCL:SYSTEM-CLASS SEQUENCE>...
210 просмотров
schedule
11.11.2022
CLOS: как вызвать менее конкретный метод?
Существует общий метод, скажем, incx . Есть две версии incx . Один специализировался на типе a , а другой специализировался на типе b . Тип b является подклассом a . Вам дан объект типа b , производного типа, но вы хотите вызвать метод,...
1721 просмотров
schedule
02.03.2023
LISP - получить все имена методов из класса
Могу ли я получить в LISP все имена методов из класса?
На самом деле мне нужны методы, которые
задавать-
в их именах.
378 просмотров
schedule
29.03.2022
Common Lisp: CLOS и пакеты / как импортировать и объединять дженерики
Предположим, у нас есть два пакета, каждый из которых определяет класс и экспортирует символы для слотов/универсальных методов с идентичными именами .
(defpackage pkg1 (:export _class1 _slot _reader _method))
(in-package pkg1)
(defclass _class1...
409 просмотров
schedule
04.07.2023
Common Lisp: извлечение методов из универсальной функции
Есть ли способ извлечь список методов из общей функции в Common Lisp? Например:
(defmethod say ((self string)) ; method-0
(format t "Got string: ~a~%" self))
(defmethod say ((self integer)) ; method-1
(format t "Got integer: ~a~%" self))...
354 просмотров
schedule
12.04.2022
Как получить доступ к метаобъектам / слотам определения слотов? Почему значение слота может иметь доступ к слотам объектов, но не к слотам метаобъектов?
У меня проблема с доступом к слотам вне определений слотов. Я могу проверять объекты классов, видеть их определения слотов и даже получать некоторую стандартную информацию об определениях слотов. Однако я не могу получить доступ к пользовательской...
224 просмотров
schedule
15.07.2022
Специализация поведения метода описания, как объяснила Соня Э. Кин.
В книге С. Кин Объектно-ориентированное программирование в COMMON LISP она вводит специализацию поведения describe универсальной функции, предоставляя :after метод для некоторых классов, но это приведет к ошибке в SBCL и Закрытие:...
41 просмотров
schedule
09.06.2023