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

Изменить значение редактируемого текста в Allegro CL
Я пытаюсь изменить значение элемента управления Editable-Text в Allegro CL (версия 8.0.1), нажав кнопку по умолчанию. Я читал о (setf value) , но не нашел примеров. Функция, которую я привязал к событию по клику, следующая: (defun...
537 просмотров
schedule 22.02.2023

CLOS для Clojure?
Существует ли что-нибудь вроде CLOS (объектная система Common Lisp) для Clojure?
4806 просмотров
schedule 11.10.2022

CLOS: Как сделать так, чтобы слот имел принудительный тип вектора символов?
Я пытаюсь создать класс, который может хранить вектор символов в слоте в SBCL. Я не могу понять, как его настроить. Мое лучшее предположение до сих пор было (defclass Individual () ((discrete-decisions :type (vector symbol)))) Это...
1312 просмотров
schedule 21.05.2022

Невозможно вызвать метод, когда первый аргумент равен нулю?
(defmethod carpet-append ((this carpet) (rect image-rectangle)) (destructuring-bind (rect-width . rect-height) (rectangle-size rect) (destructuring-bind (bitmap-width . bitmap-height) (carpet-size this) (if this...
105 просмотров
schedule 15.03.2023

Финализация класса: как избежать создания фиктивных экземпляров?
Я столкнулся с проблемой, что сторонняя библиотека должна работать с классом так, как если бы он был завершен. После некоторого чтения я понимаю мотивацию этого механизма, но я действительно не знаю, как он работает. Пример: (make-instance...
613 просмотров
schedule 09.09.2022

Как уменьшить дублирование кода, используя комбинацию методов, но сохраняя возможность раннего возврата
У меня есть набор классов, которые представляют сообщение, которое нужно обработать. Но есть только ограниченное количество открытых мест для хендлеров. Поэтому любая «отправка» обработчика, обрабатывающего объект сообщения, должна сначала...
240 просмотров
schedule 17.03.2023

дополнительные свойства к определению слота
http://mop.lisp.se/concepts.html говорит: Реализация может свободно добавлять дополнительные свойства в спецификацию канонизированного слота при условии, что они не являются символами, доступными в пакете common-lisp-user или экспортируемыми...
810 просмотров
schedule 10.08.2022

Почему слоты CLOS могут быть развязаны?
Говорят, что только специальные переменные в Common Lisp могут быть несвязанными. Для всех лексических переменных значение по умолчанию равно nil . Я думал, что слоты классов существуют в чем-то вроде закрытия, но, очевидно, это не так. Если я...
787 просмотров
schedule 03.06.2022

Использование опции :method в defgeneric
Я заметил, прочитав книгу Кина, что defgeneric имеет параметр :method , который, кажется, позволяет вам указать метод в самом универсальном определении. В большей части документации, которую я видел, все применимые методы определены в отдельных...
1289 просмотров
schedule 24.06.2023

Идиоматический способ определить несколько бэкэндов в Common Lisp?
Я хочу написать код с несколькими бэкендами пользовательского интерфейса (например, текстовым и графическим), чтобы их было легко переключать. Мой подход использует CLOS: (defgeneric draw-user-interface (argument ui) (:documentation "Present...
285 просмотров
schedule 11.02.2024

сравнение объектов CLOS
Мне интересно, почему в Common Lisp нет встроенного оператора равенства для сравнения объектов CLOS (стандартных классов). Например, "equalp" может применяться к массивам, структурам, хеш-таблицам, но не к объектам. Я предполагаю, что новый тест,...
741 просмотров
schedule 12.07.2023

Переопределить :INITFORM слота класса в подклассе
Мне нужно немного обобщить значение слота по умолчанию в подклассе. Пример: (defclass class-a () ((slot-1 :initarg :slot-1 :initform #'identity) <...> other-slots<...>)) Его подкласс (defclass class-b (class-a)...
199 просмотров
schedule 20.05.2024

Как изменить метакласс класса
Это случается со мной снова и снова: я определяю класс и забываю, что я хотел, чтобы он функционировал, или это, скажем, класс виджета Gtk, поэтому необходимо указать его метакласс. Однако, как только он определен, SBCL не позволяет мне изменить...
635 просмотров
schedule 21.09.2022

Альтернатива Common Lisp использованию классов
Мне интересно, как сохранить одну переменную и иметь определенные функции для этой переменной. Мне интересно, есть ли альтернативы созданию класса. В частности, я создаю приложение, в котором я сохраняю значение времени, представляющее количество...
442 просмотров
schedule 04.02.2024

Общая функция не может найти подходящий метод
Когда я вызываю (draw win), я получаю сообщение об ошибке: «Общая функция не может найти применимый метод. Я только что попал в CLOS и использую sdl2kit, чтобы просто отобразить окно. (defclass game-window (kit.sdl2:window) ((rotation :initform...
514 просмотров
schedule 26.02.2024

Как выполнить функцию на заданном месте
У меня есть список, который содержит некоторые символы и значения. Цель состоит в том, чтобы установить слот класса с помощью метода доступа, чей символ предоставляется списком: (defclass my-class () ((attr :accessor attr))) (let ((to-call...
222 просмотров
schedule 26.01.2023

Как указать на экземпляр defgeneric в common-lisp CLOS
новичок в lisp здесь. Я понимаю, как указать на конкретный экземпляр метода с помощью функции find-method , и я вижу, используя слизь для проверки возвращаемого экземпляра метода, что у него есть слот %GENERIC-FUNCTION, но я не могу его...
114 просмотров
schedule 15.02.2023

В чем смысл универсальной функции метода?
Я изучаю общий язык и CLOS. Я начал с учебника с http://cl-cookbook.sourceforge.net/clos-tutorial/ В разделе 4.3 упоминалось, что Обобщенная функция — это лисп-функция, которая связана с набором методов и отправляет их при вызове. Также...
54 просмотров
schedule 02.09.2022