[Python-Dev] A Hygienic Macro System in Python?
Greg Ewing
greg@cosc.canterbury.ac.nz
Wed, 20 Mar 2002 12:12:29 +1200 (NZST)
Paul Prescod <paul@prescod.net>:
> Mixed feelings on that...not a big fan of the Ruby indiom:
>
> 5.dotimes():
> print "Hello";
My proposal has the (possibly minor) advantage over the Ruby syntax
that it doesn't have the (), so that it more closely resembles the
syntax of built-in control structures, and doesn't look so much like
you're making a call with one less parameter than you really
are. (Unfortunately, in the process, it manages to obscure that you're
making a call at all. :-[)
If you don't like the look of the dot-notation in that position, the
lock example could be done using a procedure instead of a method of
the lock object:
withlock mylock:
do_something()
def withlock(lock, body):
lock.acquire()
try:
body()
finally:
lock.release()
> I sort of like the fact that Python figures out what control flow
> features people need (e.g. foreach and simple generators) and just
> implements.
Yes, but the feature we're talking about is designed for those cases
where you badly need a control structure that Guido hasn't thought of
yet.
Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury, | A citizen of NewZealandCorp, a |
Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. |
greg@cosc.canterbury.ac.nz +--------------------------------------+