Описание тега reader-macro

None Способ программирования читателя Common Lisp
1 ответ

Как установить *readtable* на пустое значение в common-lisp?

Стандартный common-lisp определяет много макросов читателя, таких как ( а также ) для группировки, ' за quote, " для цитаты строки, | для котировки символов, # для отправки макроса и т. д. Теперь я хочу отключить их все и использовать свои собственн…
06 янв '14 в 07:49
1 ответ

Есть ли формальный способ предложения / обсуждения изменений в Clojure?

Есть ли формальный способ предложения / обсуждения изменений в Clojure?
17 июн '15 в 22:05
1 ответ

Как оценить код Лисп внутри макроса читателя?

Я пишу свой собственный ассемблер x86-64 в Common Lisp, и он производит правильный двоичный код для подмножества x86-64. Я использую пользовательский макрос для чтения, чтобы преобразовать ассемблерный код в синтаксическое дерево, и он работает как …
28 мар '14 в 20:48
1 ответ

Определите мой собственный макрос чтения

В Common Lisp есть некоторые макросы чтения, такие как ' #' #P, но как я могу написать прочитанный макрос? Как это: #T"hello world" ====================> (gettext "hello world")
26 фев '13 в 14:32
1 ответ

Common Lisp Hash-Dot #. Читатель Макро

Недавно я наткнулся на так называемый макрос для чтения хеш-точек Common Lisp и мне интересно, как он работает и что он делает. Использование поисковых систем не очень помогло, поэтому любые примеры, объяснения и особенно варианты использования прив…
14 фев '18 в 18:09
3 ответа

Обычный шут: есть ли менее болезненный способ ввода математических выражений?

Мне нравится общий язык, но иногда очень сложно вводить простые математические выражения, такие как a(8b^2+1)+4bc(4b^2+1) (Конечно, я могу преобразовать это, но это немного медленно, я сначала пишу (+ () ()), а затем в каждой скобке я ставлю (* () (…
3 ответа

Какое преимущество имеют обычные макросы для читателей LISP, которых нет у Clojure?

Я недавно использовал Clojure, но до сих пор не понимаю, какую функциональность я не получаю, которую предоставляют обычные макросы для читателей lisp. Можете объяснить, объясните мне это простыми словами?
21 апр '11 в 16:09
2 ответа

Отладка макросов

Вот ситуация: CL-USER> [bookid] #<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKID> CL-USER> (sql-expression :attribute 'bookid) #<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKID> CL-USER> [books.bookid] #<CLSQL-SYS:SQL-IDENT-ATTRIBUTE BOOKS.BOOKID…
01 дек '12 в 02:26
2 ответа

Различия между Sharpsign Colon и Gensym

Я только что читал о макросе читателя двоеточия Sharpsign, и это звучало так, как будто он очень похож на gensym Sharpsign Colon: "вводит непереданный символ" Генсим: "Создает и возвращает свежий, не имеющий отношения символ" Итак, простой тест CL-U…
02 фев '15 в 09:35
2 ответа

Как заставить Common Lisp трактовать цифры как имена символов?

Надеюсь эти коды (12 3.5 1e4) можно рассматривать как три символа (|12| |3.5| |1e4|) а не три числа. Могу ли я выполнить это, установив читатель? Обновить: У меня есть коллекция данных, которая организована как вложенные списки: (abc,d/e-f 12ab, 21e…
11 янв '14 в 16:55
1 ответ

Создание читаемой таблицы с отключенным макросом диспетчера чтения

Я создаю новый язык, основанный на Racket, и я не хочу определенных #x макросы для работы, такие как синтаксическая кавычка #', Как мне удалить это так, чтобы #' не делает синтаксическую кавычку, но делает то, что делает несвязанный макро-символ отп…
12 мар '14 в 03:35
2 ответа

Почему расширения макроса читателей не распространяются во время выполнения (чтение)?

Почему следующее не работает? ;;;; foo.lisp (in-package :cl-user) (eval-when (:compile-toplevel :load-toplevel :execute) (require :cl-interpol)) (cl-interpol:enable-interpol-syntax) (defun read-and-eval (s) (eval (read-from-string s))) (cl-interpol:…
02 сен '13 в 13:53
1 ответ

В чем разница между set-macro-symbol и set-dispatch-macro-symbol?

Из сигнатур этих функций очевидное отличие состоит в том, что set-macro-character позволяет установить функцию чтения макроса для одного символа, и set-dispatch-macro-character позволяет установить его для любой комбинации из двух символов. Это един…
15 янв '19 в 13:29
2 ответа

Что означает #+: и #-: в общих словах

Сегодня я читаю код cl-fad/load.lisp и обнаружил символы #+: а также #-: в начале выражения или строки. Что означают эти символы?
23 окт '16 в 02:33
1 ответ

Прочитать ввод в строку в макросе читателя Lisp

Я пытаюсь сделать макрос для чтения, который конвертирует @this в "this". Вот что у меня сейчас есть: (defun string-reader (stream char) (declare (ignore char)) (format nil "\"~a\"" (read-line stream t nil t)) ) (set-macro-character #\@ #'string-rea…
19 июн '15 в 16:20
2 ответа

Что означает "#+" в коде cl-mysql?

Недавно я попытался прочитать код о cl-mysql, но застрял с #+, Пытался гуглить, но не работает, поэтому перейдите сюда (defun make-lock (name) #+sb-thread (sb-thread:make-mutex :name name) #+ecl (mp:make-lock :name name) #+armedbear (ext:make-thread…
03 май '16 в 07:25
3 ответа

Литерал функции Clojure с макросом "rest arguments" после макроса "discard"

Мне нужен литерал функции в Clojure, который может принимать любое количество аргументов, но на самом деле их не использует. Итак, я обнаружил %& ('rest arg' для функционального литерала) и #_ Макрос считывателя 'discard'. Но как они работают вм…
16 мар '17 в 16:51
1 ответ

Управление макросами читателя в Common Lisp

Я хочу определить макросы читателей таким образом, чтобы они влияли только на определенный пакет / файл. До сих пор я был в состоянии загрузить эти файлы с (let ((*readtable* (copy-readtable))) (load "file.lisp")) Есть ли лучший способ сделать это?
21 янв '12 в 03:02
2 ответа

Оператор #+ и #- в.sbclrc

Кто-нибудь знает, что #+ а также #- операторы означает в .sbclrc? Я не мог найти это в руководстве. я вижу #- в .sbclrc после того, как я установил QuickLisp: #-quicklisp (let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pa…
28 дек '11 в 04:00
1 ответ

Необходимость цитаты в On Lisp's #[ read macro?

Я читаю на Лиспе и не могу понять, почему в приведенном ниже коде используется кавычка. Вот выдержка из текста: Другая комбинация символов, зарезервированная для пользователя, это # ​​[. На рисунке 17.3 приведен пример того, как этот символ может бы…
27 апр '14 в 08:29