синтаксис для несинтаксиса в синтаксическом разборе - PullRequest
0 голосов
/ 12 декабря 2018

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

[(list e ...) #`(list #,(f #'e) ...)]

в принципе, я бы хотел, чтобы каждый элемент в списке обрабатывался индивидуальноf в несинтаксисе.Я не думаю, что приведенный выше правильный синтаксис?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете использовать unsyntax-splicing (что может быть сокращено до #,@), чтобы встроить результат выражения, возвращающего список, в качестве отдельных элементов внешнего списка.Затем вы можете использовать процедуру map для применения f ко всем элементам списка, возвращаемым выражением (syntax->list #'(e ...)).В итоге это будет выглядеть так:

#`(list #,@(map f (syntax->list #'(e ...))))
...