Le Vendredi 26 Août 2005 16:57, Guido van Rossum a écrit : > On 8/25/05, Ian Bicking <[EMAIL PROTECTED]> wrote: > > More generally, I've been doing some language comparisons, and I don't > > like literal but non-idiomatic translations of programming patterns. > > True. (But that doesn't mean I think using generators for this example > is great either.) > > > So I'm considering better ways to translate some of the same use cases. > > Remember that this particuar example was invented to show the > superiority of Lisp; it has no practical value when taken literally. > If you substitute a method call for the "acc += incr" operation, the > Python translation using nested functions is very natural. For larger > examples, I'd recommend defining a class as always.
For example, I often use this class to help me in functional programming : _marker = () class var: def __init__(self, v=None): self.v = v def __call__(self, v=_marker): if v is not _marker: self.v = v return self.v and so the nested functions become very functional : def accum(n): acc = var(n) return lambda incr: acc(acc()+incr) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com