[Python-Dev] A Hygienic Macro System in Python?

Greg Ewing greg@cosc.canterbury.ac.nz
2002年3月20日 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	 +--------------------------------------+

AltStyle によって変換されたページ (->オリジナル) /