В общем задача такая: необходимо написать макру define-ci-keywords, которая будет работать вот так
(define-ci-keywords foo bar)
; превращается в
(define-lex-abbrevs
(foo (:: (:or #\f #\F) (:or #\o #\O) (:or #\o #\O))
(bar (:: (:or #\b #\B) (:or #\a #\A) (:or #\r #\R)))
Писать целиком не требую =) Однако нахожу макросистему Scheme весьма непонятной. Поэтому проясните хотя бы следующее:
1. Как внутри макры превратить параметр, являющийся символом, в строку?
2. Как тут правильно будет выглядеть рекурсия в макре?
Ну а если напишите целиком, буду вообще благодарен.