macros. Was: Arrow notation, etc.

Fergus Henderson fjh@cs.mu.oz.au
Mon, 15 Oct 2001 12:01:32 +1000


On 12-Oct-2001, Jerzy Karczmarczuk <karczma@info.unicaen.fr> wrote:
> 
> They [macros] are heavily used in Clean, so, there *are* people
> who see a need for them in a lazy language.

Well, that depends on what you mean by "macros".  Clean's "macros"
have essentially the same semantics as inline functions, don't they?
If I understand correctly, the denotation semantics of Clean's macros
is exactly the same as ordinary functions, the only difference is that
operationally they are guaranteed to be inlined.

So, unless I'm missing something, they are just an efficiency hack,
and one which is already looking somewhat dated -- a bit like the
"register" keyword in C.

This is quite different to the kind of macros that would
allow you to extend the language syntax to support things
like arrow notation or views.

-- 
Fergus Henderson <fjh@cs.mu.oz.au>  | "... it seems to me that 15 years of
The University of Melbourne         | email is plenty for one lifetime."
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- Prof. Donald E. Knuth