Я использую схему Chez, и я хотел бы представить некоторые привязки верхнего уровня, основанные на содержимом каталога.Использование этого гипотетического макроса может выглядеть следующим образом:
(bind-files f "~/my-dir/")
;; Expanding to:
(begin (define f0 "~/my-dir/a.wav")
(define f1 "~/my-dir/b.wav"))
Я освоился с syntax-case
, datum->syntax
и with-syntax
, как описано в примерах Scheme book ,Но я не могу представить, как можно создать идентификаторы на основе результата чего-то «runtime-y», например (directory-list "~/")
- возможно ли это?
(Кстати, это для живого кодированиямузыкальное приложение, поэтому нет необходимости комментировать, что это плохая идея для надежного программного обеспечения - для очень специфического интерактивного контекста.)