Python's "only one way to do it" philosophy isn't good?
Douglas Alan
doug at alum.mit.edu
Thu Jun 28 01:20:49 EDT 2007
Dennis Lee Bieber <wlfraed at ix.netcom.com> writes:
> But if these "macros" are supposed to allow one to sort of extend
> Python syntax, are you really going to code things like
>
> macrolib1.keyword
> everywhere?
No -- I would expect that macros (if done the way that I would like
them to be done) would work something like so:
from setMacro import macro set, macro let
let x = 1
set x += 1
The macros "let" and "set" (like all macro invocations) would have to
be the first tokens on a line. They would be passed either the
strings "x = 1" and "x += 1", or some tokenized version thereof.
There would be parsing libraries to help them from there.
For macros that need to continue over more than one line, e.g.,
perhaps something like
let x = 1
y = 2
z = 3
set x = y + z
y = x + z
z = x + y
print x, y, z
the macro would parse up to when the indentation returns to the previous
level.
For macros that need to return values, a new bracketing syntax would
be needed. Perhaps something like:
while $(let x = foo()):
print x
|>oug
More information about the Python-list
mailing list