Tim Peters <tim_one at email.msn.com>: > If will if the "p" and "pipe" in the generator expression use the > bindings in effect at the time the generator expression is assigned to > pipe. Lying awake thinking about this sort of thing last night, I found myself wondering if there should be a way of explicitly requesting that a name be evaluated at closure creation time, e.g. pipe = source for p in predicates: pipe = e for e in pipe if ^p(e) where the ^ means that p is evaluated in the enclosing scope when the closure is created, and bound to a slot which behaves like a default-argument slot (but is separate from the default arguments). This would allow the current delayed-evaluation semantics to be kept as the default, while eliminating any need for using the default-argument hack when you don't want delayed evaluation. Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. | greg at cosc.canterbury.ac.nz +--------------------------------------+
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4