Hi! > In Python, the difference is that []-syntax gives you a list > (pre-comupted), whereas without the [] you get a generator > (generate-on-demand). This distinction is important because the > generator might be iterating over something non-repeatable (e.g. another > generator), or have some destructive or mutating effect. You also might > not want to take the performance penalty of computing it every time you > iterate over it.
Understandable, but I wonder how important it is for the short syntax implied by list comprehensions? I mean, there could be all kinds of complex cases, but those are easily doable by using already existing functional syntax. If you need a generator over non-repeatable sequence, you can get it now with a functional syntax. But in my experience, about 99% times I use this syntax (in Python) is a simple sequence filter and I want to get a list out of it. I suspect PHP usage would be the same. So I wonder if it's worth to bother inventing special syntax for something that will be used in 1% of cases, and even in those cases might be more readable as a generator function? > Why not apply the same approach to PHP? There is iterator_to_array() to > convert a generator to an array, so we may not need both syntaxes. > However, I think using [] for something that is *not an array* is > counter-intuitive. No, I would definitely be for []-syntax producing an array. As I said, that's in my experience what people usually want. -- Stas Malyshev smalys...@gmail.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php