So I was thinking about this whole thing, and wondering why it was that seeing things like: " ".join(aList) bugged me to no end, while: aString.lower() didn't seem to look wrong. I finally put my finger on it, and I haven't seen anyone mention it, so I guess I'll do so. To me, the concept of "join" on a string is just not quite kosher, instead it should be something like this: aList.join(" ") or if you want it without the indirection: ['item', 'item', 'item'].join(" ") Now *THAT* looks right to me. The example of a join method on a string just doesn't quite gel in my head, and I did some thinking and digging, and well, when I pulled up my Smalltalk browser, things like join are done on Collections, not on Strings. You're joining the collection, not the string. Perhaps in a rush to move some things that were "string related" in the string module into methods on the strings themselves (something I whole-heartedly support), we moved a few too many things there---things that symantically don't really belong as methods on a string object. How this gets resolved, I don't know... but I know a lot of people have looked at the string methods---and they each keep coming back to 1 or 2 that bug them... and I think it's those that really aren't methods of a string, but instead something that operates with strings, but expects other things. Chris -- | Christopher Petrilli | petrilli@amber.org
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