Ivan Krstić wrote: >> Let's do some *hard* stuff, for a change. > > I couldn't agree more. The fundamental problem that I see, though, is > that Guido seems strongly opposed to adding any additional > metaprogramming features to the language [0], and solving much of the > hard stuff elegantly and without special-cased, one-off solutions, > requires these. > > LINQ-like features certainly require having first-class code blocks.
I'm not convinced that they do -- you can emulate LINQ today with generators and iterator tools and good old for-in statements: http://sayspy.blogspot.com/2006/02/why-python-doesnt-need-something-like.html but as noted in the comments, what's missing is a way for the container to do query optimizations based on the *entire* filter expression. if we can come up with a decent mechanism (*) for that, the existing for-in block construct is good enough for the rest. more later. </F> *) there are plenty of hacks to address parts of this; everything from algebra on custom objects (used by various SQL construction kits, RE construction kits, etc), code that analyzes an expression by passing special AST-building objects through it (used in PIL's point method, for example), and code that requires you to pass in the expression as a text string (or a ready-made "compiler" module AST-tree). _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
