define-match-expander

об определении-сопоставлении-расширении, есть редкие материалы и примеры кодов для иллюстрации концепций. Я трудно «расшифровать» то, что говорится в документации:

(define-match-expander id proc-expr)
(define-match-expander id proc-expr proc-expr)

Привязывает id к расширителю соответствия.

Первое подвыражение proc-expr должно оцените трансформатор, который производит похлопывание на матч. Всякий раз, когда id появляется как начало узора, этот трансформатор дан при время расширения, синтаксический объект соответствующий всему шаблону (включая id). Шаблон - это заменен результатом трансформатор.

Трансформатор, производимый вторым Подвыражение proc-expr используется, когда id используется в контексте выражения. Используя второй proc-expr, id может быть данное значение как внутри, так и снаружи

Может ли кто-нибудь привести здесь несколько примеров кодов, чтобы проиллюстрировать два использования здесь определения-соответствия-расширителя?

6
задан 27 February 2011 в 21:22
поделиться