Hi,
I'm porting some Lisp to Scheme and I've run into a problem trying to use both extended parameter lists (keywords) with syntax-case.
% cat test.scm (define (s #!key (f "foo") (v #f)) #t) % gsi test % gsi -e '(load "~~lib/syntax-case")' test *** ERROR IN ##call-with-values -- invalid syntax (define (s #!key (f "foo") (v #f)) #t)
The actual code has both define-syntax and define-macro definitions. The manual says that define-syntax doesn't support special forms that are specific to Gambit, so I'm assuming that's the real issue here. But I'm wondering what the philosophy of Gambit is with respect to macros, given that define-syntax was specified for both R4RS and R5RS. Chicken 4 deprecated the use of define-macro and now forces one to use define-syntax. Which is ironically why I have define-syntax forms, in that I ported this code to Chicken first. Should I just rewrite them as define-macro? For all it's faults, CL only has one macro form. :-)
Afficher les réponses par date