chicken-users
[Top][All Lists]
Advanced

[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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]