Описание тега syntax-rules
For questions about the syntax-rules macro facility of the Scheme programming language.
3
ответа
Что означает знак "|" в Python?
Этот вопрос изначально задал (ошибочно), что означает "|" Я имею в виду в Python, когда реальный вопрос был о Джанго. На этот вопрос у Триптиха был замечательный ответ, который я хочу сохранить.
06 янв '09 в 17:18
1
ответ
Как векторные шаблоны используются в синтаксических правилах?
Я писал макросы Common Lisp, поэтому макросы R5R в Scheme для меня немного неестественны. Я думаю, что у меня есть идея, за исключением того, что я не понимаю, как можно использовать векторные шаблоны в синтаксических правилах: (define-syntax mac (s…
26 мар '10 в 21:11
2
ответа
Как clojure макрос разбирает спецсимвол?
Когда я заново внедряю макрос, написанный на Scheme с Clojure, я попадаю в беду. Макрос пытается загрузить пары тестовых данных в all-tests Вар для последующего использования. Потому что аргументы для макроса имеют переменную длину и содержат специа…
11 апр '15 в 08:53
2
ответа
Как контролировать порядок расширения макроса Схемы?
Я работаю с расширением Racket macro syntax-id-rules, что некоторые другие реализации Схемы предоставляют под именем identifier-syntax, Они позволяют вам указывать расширения макросов, которые будут происходить, даже если определенный идентификатор …
14 авг '15 в 13:26
9
ответов
Как я могу близко достичь?: Из C++/C# в Python?
В C# я мог бы легко написать следующее: string stringValue = string.IsNullOrEmpty( otherString ) ? defaultString : otherString; Есть ли быстрый способ сделать то же самое в Python, или я застрял с оператором "если"?
25 сен '08 в 19:06
1
ответ
Введение именованной переменной с правилами синтаксиса
Я пытаюсь написать супер-крошечную объектно-ориентированную систему с синтаксическими правилами, в основном, просто чтобы изучить ее. Во всяком случае, я пытаюсь ввести переменную "это". Вот что я хотел бы сделать: (oo-class Counter ( (attr value 0)…
23 апр '18 в 13:18
5
ответов
Подсветка синтаксиса Emacs Lisp
Я хочу написать расширение подсветки синтаксиса для Emacs, но я погуглил варианты "учебника по подсветке синтаксиса emacs". Как мне научиться писать подсветку Emacs? Какие хорошие ресурсы есть, чтобы научиться делать такие вещи?
15 май '09 в 04:09
1
ответ
Предоставить синтаксис-правило Racket
Как мне предоставить синтаксические правила в ракетке? У меня есть код, который похож на это: (define-syntax SELECT (syntax-rules (FROM WHERE star) [(SELECT colnames FROM relnames) ...] [(SELECT colnames FROM relnames WHERE . expression) ...])) Как …
25 янв '18 в 12:16
3
ответа
Источники для изучения макросов схемы: определение синтаксиса и правила синтаксиса
Я прочитал учебник по правилам синтаксиса JRM для простого эксцентрика, и он помог мне понять правила синтаксиса и то, как он отличается от макроса define-lisp. Синтаксические правила - это только один из способов реализации синтаксического преобраз…
25 сен '08 в 04:07
1
ответ
Пожалуйста, рефакторинг моего макроса в схеме
Я изучаю гигиену, и я попытался сделать простой цикл в Схеме. Я хочу поддерживать три вида конструкций, как показано в примере ниже (for i = 1 : (< i 4) : (++ i) (printf "Multiplication Table for ~s\n" i) (for j = 1 to 5 (printf "~s * ~s = ~s\n" …
29 ноя '09 в 22:43
1
ответ
Правила синтаксиса не полностью гигиеничны?
Я это понимаю syntax-rules это гигиеническая макросистема, но я не понимаю, почему это происходит: (define not (lambda (x) x)) (define-syntax nand (syntax-rules () ((_ a b) (not (and a b))))) (nand #f #t) ==> #f Теперь, если бы я переопределил no…
19 янв '12 в 14:40
1
ответ
Неявное каррирование в Scheme с синтаксическими правилами?
У Джеффри Менье есть неявный макрос Curry, который использует defmacro. Мне было интересно, если кто-то когда-либо писал это с синтаксическими правилами?
19 сен '10 в 11:48
1
ответ
Guile `синтаксические правила`: неуместный эллипс в форме; Как написать этот макрос с двумя эллипсами?
Я пытаюсь более или менее воссоздать let построить через syntax-rules но, похоже, это спотыкается об использовании двух эллипсов. Я попытался написать это так: (define-syntax if-let (syntax-rules () [(_ (([binding value] ...) ([binding2 funct value2…
17 апр '19 в 17:32
1
ответ
Схема макроса парной обработки вопроса
(На данный момент, пожалуйста, не обращайте внимания на то, что мне нужно, это не Schemey, потому что это для DSL, нацеленного на непрограммистов) Я хотел бы сделать что-то эквивалентное этому: (pairwise key1 value1 key2 value2) Который расширится д…
01 апр '19 в 13:57
2
ответа
Схема: Как расширить шаблон с несколькими переменными в правилах синтаксиса без скобок
Я пытаюсь написать макрос на схеме для стиля Picolisp let выражения, назовем этот макрос let-slim. Чтобы быть более сжатым (например, Picolisp), я хочу, чтобы их использование выглядело примерно так при объявлении только одной переменной (let-slim v…
03 июн '19 в 00:14
1
ответ
Правила синтаксиса схемы - смешивание различных вариантов синтаксиса в `...`
Допустим, у меня есть макрос (define/custom (name (arg type) ...) body ...) это, помимо прочего, расширяется до (define (name arg ...) body ...). Это легко. Теперь я хочу позволить не только (arg type) передается как параметр, но просто arg. Хорошо,…
21 июн '20 в 01:12
1
ответ
Правила синтаксиса схемы, соответствующие любому количеству переменных шаблона перед литералом?
Я пытаюсь написать макрос, который заменяет некоторый литерал в выражении значением, например (substitute 3 (+ 4 1 _ 1 5)) Это то, что у меня есть до сих пор, (define-syntax substitute (syntax-rules (_) ((substitute val (_ e1 ...)) (val e1 ...)) ((s…
21 ноя '19 в 02:22
0
ответов
Можно ли определять анафорические макросы только с помощью синтаксических правил?
Можно ли писать анафорические макросы (например) только с помощью? Такой макрос должен нарушить гигиену макросистемы. Я знаю, что это возможно с syntax-case, а возможно ли это как-то в R5RS и R7RS-small? Если да, то не могли бы вы предоставить миним…
27 сен '21 в 02:43
1
ответ
О каких особых формах Схемы должен знать гигиенический макроэспандер?
syntax-rulesв Scheme являются «гигиеническими» и «ссылочно прозрачными» и должны сохранять лексическую область видимости Scheme. Насколько я понимаю, это означает, что на этапе макрорасширения расширитель должен знать о и. О расширителе нужно знать…
14 ноя '21 в 18:16
0
ответов
Можно ли определить анафорические макросы, используя только правила синтаксиса?
Можно ли писать анафорические макросы (например, ), используя только? Такой макрос должен нарушить гигиену системы макросов. Я знаю, что это возможно сsyntax-case, а можно ли как-то с в R5RS и R7RS-маленький? Если да, не могли бы вы предоставить мин…
05 окт '22 в 10:18