At 05:31 AM 10/16/03 -0700, Michael Chermside wrote: >Alex Martelli writes: > > I think we could extend indexing to mean something different when > > the [ ] contain a 'for', just like we extended list display to mean > > something different (list comprehension) when the [ ] contain a > > 'for'. Syntax such as: > > > > Top(10)[ humor(joke) for joke in jokes ] > > > > does not suggest a list is _returned_, just like foo[23] doesn't. > >I find the syntax a bit confusing. > >Are we subscripting here, or are we juxtaposing one expression >("Top(10)"), with a list comprehension ("[humor(joke) for joke in jokes]")? > >Not totally unreadable, but it rubs me the wrong way. I read [] used >for subscripting as completely different from [] used for list literals >and list comprehensions. They just happen to share the same pair of >symbols. To me, this confuses the two somewhat. I have to second on the syntax confusion, but for a different reason. This: Top(10)[ humor(joke) for joke in jokes ] Looks to me like some kind of *slice* syntax. I would read this as being roughly equivalent to: temp = Top(10) [temp[humor(joke)] for joke in jokes ] Top(10) and all the other accumulators proposed are, IMO, nothing more than transformations of a sequence or iterator. Transformations are what functions are for, and function syntax clearly expresses that the function is being applied to the sequence or iterator, and returning a result. Peter's syntax is too magical, and Alex's implies subscripting that doesn't really exist. Both are misleading to a casual reader of the code.
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