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

Использовать конструктор суперкласса?
Итак, у меня есть занятия (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 просмотров

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 просмотров

Как получить доступ к метаобъектам / слотам определения слотов? Почему значение слота может иметь доступ к слотам объектов, но не к слотам метаобъектов?
У меня проблема с доступом к слотам вне определений слотов. Я могу проверять объекты классов, видеть их определения слотов и даже получать некоторую стандартную информацию об определениях слотов. Однако я не могу получить доступ к пользовательской...
224 просмотров
schedule 15.07.2022

Специализация поведения метода описания, как объяснила Соня Э. Кин.
В книге С. Кин Объектно-ориентированное программирование в COMMON LISP она вводит специализацию поведения describe универсальной функции, предоставляя :after метод для некоторых классов, но это приведет к ошибке в SBCL и Закрытие:...
41 просмотров
schedule 09.06.2023