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