Try the following, which does not require define-syntax:
(define-macro (define pattern . rest) (if (pair? pattern) `(define ,(car pattern) (##lambda ,(cdr pattern) ,@rest)) `(##define ,pattern ,@rest)))
(define (((f x) y) z) (+ x y z))
(define g (f 1)) (define h (g 2)) (pp (h 10))
Marc
On 25-Aug-09, at 8:32 PM, Michele Zaffalon wrote:
I suppose I have to start Gambit with gsi -:s. Still it doesn't work: invalid syntax.
On Tue, Aug 25, 2009 at 7:50 PM, Eduardo Cavazos<wayo.cavazos@gmail.com
wrote: Michele Zaffalon wrote:
Now, what doesn't (define ((L-free-particle mass) local) ... work with Gambit? What is missing?
You can create a new version of 'define' which behaves that way:
(define-syntax define* (syntax-rules () ((_ ((x . f1) . f2) . b) (define* (x . f1) (lambda f2 . b))) ((_ . r) (define . r))))
The SICM text should have an explanation of this particular notation.
Thanks to Derick Eddington for the definition.
Ed _______________________________________________ Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list