chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] ANN: eping


From: John Maxwell
Subject: Re: [Chicken-users] ANN: eping
Date: Thu, 22 Aug 2013 11:17:44 -0400

On 08/22/13 10:54:44, John Cowan wrote:
> Like your earlier macro that attempts to remap h to |h|, this one
> won't
> quite work, because the difference between h and |h| disappears in 
> the
> reader, and the macro engine never sees it.  192.168.0.1 is simply 
> not
> valid Scheme lexical syntax, and nothing you can do at the macro 
> level
> will make it so: it so happens that Chicken processes it as a symbol,
> but that's an artifact of the implementation.
> 
[snip]

Michele-

To restate John's point in a way which may help you to understand it:

There is a significant difference between the meaning of the term 
"macro" in the Lisp world and in most of the rest of computer-land:

In most computer contexts (in particular, in C/C++, which is where most 
folks seem to first encounter the concept these days), macros are 
pretty much text-processing devices; sometimes there's a _little_ 
tokenizing involved, but mostly, they replace one chunk of text with 
another.

In Lisp-like languages, including Scheme, they're structure-level 
devices; they replace a chunk of the parse tree (the code *after* it's 
been tokenized and parsed, but before it's been executed) with another 
tree.

The difference can lead to all kinds of confusion until you understand 
it; I think that's where you're going astray.

-John

--
John Maxwell  KB3VLL  address@hidden

Nihilism is best done by professionals.
    -Iggy Pop



reply via email to

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