Источники для изучения макросов схемы:определить синтаксис и правила синтаксиса
-
02-07-2019 - |
Вопрос
я прочел Учебник по синтаксическим правилам JRM для Merely Eccentric, и это помогло мне понять правила синтаксиса и их отличие от макроса определения в common-lisp.правила синтаксиса — это только один из способов реализации преобразователя синтаксиса в файле define-syntax.
Я ищу две вещи: первая — это больше примеров и объяснений правил синтаксиса, а вторая — хорошие источники для изучения других способов использования define-syntax.Какие ресурсы вы рекомендуете?
Решение
Чтобы ответить на ваш второй вопрос: syntax-case
это другая форма, которая входит внутрь define-syntax
.Кент Дибвиг — главный сторонник syntax-case
, и у него есть руководство по его использованию [PDF].
Я также прочтите документацию по схеме PLT на syntax-case
чтобы увидеть еще несколько примеров и узнать о различиях в реализации.
Другие советы
Учебник по синтаксическим правилам JRM довольно хорош, но глава 36 «Языков программирования»:Применение и интерпретация, Шрирам Кришнамурти. http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/) также хорошо описывает написание макросов Scheme.Этот материал использовался и улучшался в нескольких коротких статьях, технических отчетах и т. д. за последние 10 лет, так что это не статья «это было правдой о X-реализации Scheme в 1983 году, которая больше не доступна».
Список ресурсов на Поваренная книга схемы это отличное место для начала.Если вы предпочитаете бумаги, то не стесняйтесь посетить readscheme.org.
Боязнь макросов — практическое руководство по использованию макросов в Racket.Он показывает множество способов использования define-syntax
.Возможно, этот материал не полностью применим к Scheme, но некоторые примеры могут оказаться полезными для понимания того, что можно сделать.