2012/8/26 Bob McIsaac
<bobmc_net@rogers.com>
Hi:
3 questions...
I'm looking for a "when" macro and tried one patterned
on "unless". It behaves like "when-not". How do I write
a proper "when" macro?
(define-syntax when-not
(syntax-rules ()
((when-not test body ...)
(if test #t (begin body ...)))))
(define (test-when n)
(when-not (not (< n 50))
(println "line1 " n)
(println "line2 " n)
(println "line3 " n)))
(test-when 0) (test-when 3) (test-when 55)
;-------------------------------------------
I'm not clear about what you are trying to achieve here.
Re "define-syntax" the Gambit-C
manual says .."Note that this implementation of
syntax-case does not support special forms that are
specific to Gambit." What are the implications of this
statement? Is there a preferred model for writing
Gambit-C macros?
No support for #!rest #!optional #!key would be a good
start. Not clear atm about more.
;------------------------------------------------------------
Some code has a "##" prefix like..
(##define-macro (err form)
`(let ()
(##declare (safe) (generic))
(err-form (lambda () ,form))))
Why is that?
Generally in Gambit ##-prefixes on Gambit-provided
procedures is to say it's the non-typechecked variant.
As for Gambit-provided syntactical forms (##define-macro
##lambda etc.) I believe they're equivalent with the
non-prefixed variant.
Brgds
=bob=
_______________________________________________
Gambit-list mailing list
Gambit-list@iro.umontreal.ca
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list