chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] macro systems and chicken (long)


From: felix winkelmann
Subject: Re: [Chicken-users] macro systems and chicken (long)
Date: Mon, 7 Apr 2008 12:02:54 +0200

On Fri, Apr 4, 2008 at 1:56 PM, Alex Shinn <address@hidden> wrote:
> There seems to be a lot of confusion in the Chicken
>  community, and the Lisp community in general, about the
>  different macro systems, so I thought provide some
>  background information and discussion of the eggs available
>  in Chicken and their uses.

An excellent roundup, Alex. This should really go into the wiki.

>
>  So to summarize SYNTAX-CASE does let you write both high and
>  low level macros and preserve hygiene, and has some nice
>  ideas, but I really dislike it and discourage it's use for
>  the following reasons:
>
>   1) very, very large and baroque API and reader extensions
>
>   2) forces a single destructuring idiom tightly integrated
>      with the macro system, when this should be a purely
>      orthogonal concept
>
>   3) makes it very difficult to play along with alternate
>      macro systems
>
>   4) implicit unhygienic interaction between SYNTAX-CASE and
>      SYNTAX, and in general confusing semantics
>
>   5) identifier syntax (another huge, ugly can of worms I
>      won't even get into here)
>

And more: syntax-case does away with the fundamental
idea of Lisp, code-data isomophism. You are effectively manipulating
the AST of your program and the list-processing facilities of your
source language are useless.


cheers,
felix




reply via email to

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