Tomasz Zielonka <[EMAIL PROTECTED]> wrote: ... > Also, having anonymous functions doesn't take your common sense away, so > you still "have a chance".
I've seen many people (presumably coming from Lisp or Scheme) code Python such as: myname = lambda ... rather than the obvious Python way to do it: def myname(... ((they generally do that right before they start whining that their absurd choice doesn't let them put statements inside the "unnamed function that they need to assign to a name")). _THAT_ is what having many semantically overlapping (or identically equivalent) ways to perform the same task does to people: it takes the common sense away from enough of them that I'm statistically certain to have to wrestle with some of them (be it as suppliers, people I'm trying to help out on mailing lists etc, students I'm mentoring -- at least being at Google means I don't have to fear finding such people as my colleagues, but the memories and the scars of when I was a freelance consultant are still fresh, and my heart goes out to the 99% of sensible Pythonistas who don't share my good luck). As long as Guido planned to remove lambda altogether in Python 3.0, I could console myself with the thought that this frequent, specific idiocy wasn't one I would have to wrestle with forever; now I know I will have no such luck -- it's back to the dark ages. ((If I ever _DO_ find a language that *DOES* mercilessly refactor in pursuit of the ideal "only one obvious way", I may well jump ship, since my faith in Python's adherence to this principle which I cherish so intensely has been so badly broken by GvR's recent decisions to keep lambdas, keep [<genexp>] as an identical synonym for list(<genexp>), add {1,2,3} as an identical synonym for set((1,2,3))...); though, being a greedy fellow, I'll probably wait until all my Google options have vested;-)). Alex -- http://mail.python.org/mailman/listinfo/python-list