Newsgroups: comp.lang.dylan
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!purdue!lerc.nasa.gov!magnus.acs.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!newsfeed.internetmci.com!in1.uu.net!munnari.OZ.AU!news.hawaii.edu!phinely
From: phinely@Hawaii.Edu (Peter Hinely)
Subject: Re: The power of Dylan macro's
X-Nntp-Posting-Host: uhunix4.its.hawaii.edu
Message-ID: <DHxxys.D63@news.hawaii.edu>
Sender: news@news.hawaii.edu
Organization: University of Hawaii
References: <DHw5Gw.CIL@news.hawaii.edu> <483l39$sh4@cantaloupe.srv.cs.cmu.edu>
Date: Sun, 12 Nov 1995 17:30:28 GMT
Lines: 31

In article <483l39$sh4@cantaloupe.srv.cs.cmu.edu>,
Nick Kramer <nkramer@cs.cmu.edu> wrote:
>Peter Hinely <phinely@Hawaii.Edu> wrote:
>>For example, say that I am annoyed at what I feel is an inconsistency in
>>the grammar of Dylan's standard "if"/"select"/"case" statements. Can I
>>change the grammar for such statements, for example by bringing the
>>grammar of the "case" statement into line with that of "if" statement,
>>just by writing the appropriate macro?
>
>You could do that, although I can't even begin to imagine why you'd
>want to.  What you'd have to do is implement a macro called "my-if",
>and implement it in terms of Dylan's "if" macro.  Then in the module
>system, exclude Dylan's "if" macro and import the "my-if" macro and
>rename it to "if".  Note that you're not really changing the existing
>macro, but rather creating a new macro that happens to use the same
>name as the old one.
>-- 
>
>-Nick Kramer

Thanks for your response.   

My reply would be "Who knows what people will want to do with Dylan in the
future?"  It's cool that Dylan provides such an easy way to modify and
extend Dylan syntax.  Maybe someone will want to make a Shona version of
Dylan for teaching Dylan in elementary schools in Zimbabwe (or something
like that).  From what you say, the macro system will allow them to do it
in a few minutes. 

Are LISP macro's more powerful than Dylan's?  (I don't know hardly 
anything about LISP.)
