[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Defining defmacro using define-syntax
From: |
Juergen Lorenz |
Subject: |
Re: [Chicken-users] Defining defmacro using define-syntax |
Date: |
Tue, 14 May 2019 11:54:39 +0200 |
User-agent: |
Mutt/1.11.3 (2019-02-01) |
Hi all,
yes, there is a simple way: (import procedural-macros) and you'll have
not only a hygienic (if you want so) define-macro, but other procedural
macros and macro creators as well.
Cheers Juergen
>
> The FermaT program transformation system is implemented in WSL
> and translated to Scheme for compiling or interpreting.
>
> It was originally developed using SCM scheme which uses defmacro
> to define macros, eg:
>
> (defmacro floop (name . body)
> `(call-with-current-continuation
> (lambda (,name)
> (do () (#f #t)
> ,@body))))
>
> (defmacro pop (v1 v2)
> `(begin
> (set! ,v1 (car ,v2))
> (set! ,v2 (cdr ,v2))))
>
> (defmacro push (v e)
> `(set! ,v (cons ,e ,v)))
>
> I am trying to port it to other Scheme versions. For bigloo
> I can use define-macro to define defmacro as a macro:
>
> (define-macro (defmacro name . forms)
> \`(define-macro (,name . ,(car forms)) ,\@(cdr forms)))
>
> Chicken scheme does not appear to have defmacro or define-macro
> but does have define-syntax.
>
> Is there a way to define defmacro using define-syntax?
>
> --
> Martin
>
> Dr Martin Ward | Email: address@hidden | http://www.gkc.org.uk
> G.K.Chesterton site: http://www.gkc.org.uk/gkc | Erdos number: 4
>
> _______________________________________________
> Chicken-users mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/chicken-users
--
Dr. Juergen Lorenz
Gruener Weg 27
29471 Gartow
signature.asc
Description: PGP signature