guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Threading / Pipe Macro (Chris Vine, Mark H Weaver)


From: Chris Vine
Subject: Re: Threading / Pipe Macro (Chris Vine, Mark H Weaver)
Date: Tue, 9 Jul 2019 10:26:15 +0100

On Tue, 09 Jul 2019 08:01:01 +0200
Linus Björnstam <address@hidden> wrote:
> On Tue, 9 Jul 2019, at 01:02, Chris Vine wrote:
> > On Mon, 8 Jul 2019 23:10:28 +0200t
> > Zelphir Kaltstahl <address@hidden> wrote:
> > > Hello Chris and hello Mark,
> > > 
> > > Thank you both for posting your macros! This is really useful and I am
> > > looking forward to using this in the next situation where there would be
> > > deep nesting or where it seems appropriate in other ways.
> > > 
> > > To understand what is going on in the macro, I wrote a lot of explaining
> > > comments and uploaded it in a new repository, where I intend to keep
> > > macros I come across and explain them, if I can:
> > > 
> > > https://gitlab.com/ZelphirKaltstahl/guile-scheme-macros/blob/master/threading-pipe-macro/macro.scm
> > 
> > You are using the wrong macro, because the one you have chosen has been
> > revealed to be unhygienic.  Either use the syntax-rules one (which is
> > the simplest) or the revised syntax-case macro.
> > 
> The comparison is also not really fair. The syntax-rules macro is doing
> a lot more. A simple syntax-rules macro just inserting everything in
> the leftmost position would loo something like
> 
> (define-syntax ->
>   (syntax-rules ()
>     ((-> exp) exp)
>     ((-> exp (proc args ...) rest ...) (-> (proc exp args ...) rest ...)
>     ((-> exp proc rest ...) (-> (proc exp) rest ...))))
> 
> I wrote this here in the mail without testing, so no guarantees that
> it would work. It is simple enough. I think it should work.

I am not sure what comparison you are referring to.  However, I was
comparing Mark Weaver's syntax-rules macro with my revised syntax-case
macro, both of which have the same end result, and suggesting that
Zelphir should not use my original syntax-case macro (the one he has
referenced in his gitlab repository).

You must be thinking of something else.



reply via email to

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