"Geir Magnusson Jr." wrote:
> Another quick thought :
>[snip]
> The point I want to make is that I believe keeping the notion that what
> comes out of the context is what the programmer puts in, and they are
> 'data producers' rather than 'actions'.
The global macro library is also something that gets put in by the
programmers (and template designers), as well as local #sets put
things into the context... The #macro directive is the producer,
just the same as the #set is. What has been produced, is then
referenced elsewhere and is accessed during template merging.
So your statement is not a valid justification.
I see it more as #macroPush vs. $macroPull. A #macro also could put
something into the context, which then can be pulled in at other
location.
The normal talk says "defining a macro" and "accessing a macro"
which then expands at the invocation point. Note that "using macros"
covers both defining and accessing actions.
>
> VMs or new defines or whatever would break that model. It's easy to say
> : when you want to 'do' something, it starts with '#'. When you want to
> 'get' something, it starts with '$'. Lets not mix this up.
#macroPush is normally getting something (e.g. formatted output).
So this again is no justification for them being accessed via '#'.
:) Christoph