LINUX.ORG.RU

История изменений

Исправление q0tw4, (текущая версия) :

Я просто жалуюсь, что нет тулзов работы с неймспейсом. Ну почему у меня 1 из 2 либо узать то, что захватил символ при своем определении либо забыть вообще все и переинтернить выражение заново. Я вот что-то пробовал еще с частичной обработкой выражения, типа #`(... #,(datum->syntax stx (syntax-e exp))), что минимум нужную локацию в сорце выставляет на случай бектрейсов. Но этого мало. Хочется быть хозяином положения и мочь сделать что-то вроде (eval-syntax (bind (meta1-err 1) (g x) (+ x 2))), который будет работать независимо от того, откуда в b.rkt взят g. Впрочем на практике обычно хватает просто правильно прописать в b.rkt (require X (for-syntax X)), как я и сделал с f.

А да, я в принципе старался, чтоб аргументом был integer, а не syntax. Или мог вообще без аргумента писать. Так что не факт, что в (datum->syntax x 'g) у нас будет этот самый x в наличии.

Исправление q0tw4, :

Я просто жалуюсь, что нет тулзов работы с неймспейсом. Ну почему у меня 1 из 2 либо узать то, что захватил символ при своем определении либо забыть вообще все и переинтернить выражение заново. Я вот что-то пробовал еще с частичной обработкой выражения, типа #`(... #,(datum->syntax stx (syntax-e exp))), что минимум нужную локацию в сорце выставляет на случай бектрейсов. Но этого мало. Хочется быть хозяином положения и мочь сделать что-то вроде (eval-syntax (bind (meta1-err 1) (g x) (+ x 2))), который будет работать независимо от того, откуда в b.rkt взят g. Впрочем на практике обычно хватает просто правильно прописать в b.rkt (require X (for-syntax X)), как я и сделал с f.

А да, я в принципе старался, чтоб аргументом был integer, а не syntax. Или мог вообще без аргумента писать.

Исходная версия q0tw4, :

Я просто жалуюсь, что нет тулзов работы с неймспейсом. Ну почему у меня 1 из 2 либо узать то, что захватил символ при своем определении либо забыть вообще все и переинтернить выражение заново. Я вот что-то пробовал еще с частичной обработкой выражения, типа #`(... #,(datum->syntax stx (syntax-e exp))), что минимум нужную локацию в сорце выставляет на случай бектрейсов. Но этого мало. Хочется быть хозяином положения и мочь сделать что-то вроде (eval-syntax (bind (meta1-err #'1) (g x) (+ x 2))), который будет работать независимо от того, откуда в b.rkt взят g. Впрочем на практике обычно хватает просто правильно прописать в b.rkt (require X (for-syntax X)), как я и сделал с f.