2016-08-10 5 views
2

Как я могу назвать встроенные макросы Chicken Scheme - конкретно let-values в этом случае - из моих собственных макросов?Как использовать существующие макросы - например, `let-values` - из процедуры макрорасширения в схеме курицы?

(define-syntax ... 
(ir-macro-transformer 
    (lambda (expr inject compare) 
    (let-values (...) ... 
    ... 

несвязанных переменные: пусть-значение

ответ

2

Это немного ошибки, я боюсь. Простой (import-for-syntax chicken) сделал трюк для меня.

В CHICKEN 5 это работает без такого странного импорта.

+0

Есть ли способ увидеть, какие символы импортируются в фазе синтаксиса в Chicken 4.9? – Sylwester

+0

Вы удивительный –

+1

@Sylwester: есть хак: '(map car (## sys # macro-environment))' показывает вам внутреннюю информацию о том, что доступно для расширения (я думаю ...?). С помощью '(map car (## sys # meta-macro-environment))' вы можете видеть процедуры, доступные для процедурных макросов. – sjamaan