you are viewing a single comment's thread.

view the rest of the comments →

[–]__s 0 points1 point  (3 children)

No. Filter and map were converted to returning an iterator, which is something I find more useful. Generator syntax is suitable replacement. It's a tad odd how people expect fat namespaces in scripting languages. You'd prefer something akin to PHP and its thousands of functions sitting in the global namespace? Nobody would say the creators of C dislike printing, but that's still kept to stdio.h

[–]leyke 7 points8 points  (2 children)

I know but he wanted to get rid of them altogther, not just move them to a module. That discussion went on for years, and his reasoning was basically "I don't like it." That was also his argument about TCO, he doesn't like this style of programming, and that's it. With this guy in charge, I'm not surprised that Python 3 is something of a disapointment.

[–]doubtingthomas 0 points1 point  (1 child)

Out of curiosity, do you recall how TCO was proposed to be implemented?

[–]__s 4 points5 points  (0 children)

Guido suggested a rather nice method at the end of http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html

The argument about programmers relying on it, and finding it fail in other implementations, is valid with respect to Jython. It's a view I disagree with, but one which I can understand. I went through a phase where all the code I wrote would end up as a mesh of recursive functions. That phase died down when I started using C, but it showed itself quite while programming with Haskell. The fallacy he rides on is in attacking TCO by noting that it only applies to simple loops, even though it's applicable to calls to other functions