In my opinion having macro
, function
, and procedure
at the same time is confusing and difficult to follow, especially for new commers. It seems for backward compatibility the macro
will be kept and new term procedure
is added. I thought can we use def
like Python
\def name() ...
So, this covers both: the old macro
, and the new procedure
.
This even can replace functions, as function are filter expression, so TW core can check the \def name() ...
to see if it contains a filter expression or not! If from performance point of view this has any impact, then we can use a special naming conversion like below
\def _name() [tag[HelloThere]]
The above definition states that a pragma name has single underscore, so it is a filter expression.
We can think to better prefix.
I know defining function in this way will affect the [function[myfn],[value],...]
syntax, but then why not to use [_myfun[value],...]
NOTE: Like Python, I mean here we can use name mangling and this can allow use to have different functionality with simple \def name() ...