Hacker News new | past | comments | ask | show | jobs | submit login

> i read an interview with hal abelson where he called python's lambda broken

Can you give a link? I'd be interested to read it.




sure. here you go.

http://www.gigamonkeys.com/code-quarterly/2011/hal-abelson/

the paragraph he says it in is:

> It’s just a different course. We could have done it in Scheme and I sort of wish we had. And for random reasons we didn’t. But the thing that ties it together—if you had fifteen seconds to describe the whole course—it’s still about abstraction and modularity. The beginning of that course is not very different from the beginning of 6.001 other than you do it in Python. But at that point, where you’re not building interpreters yet, you can pretty much do this stuff in Python. You have to contend with Python’s broken notion of lambda but other than that it’s not really that different.

he mentions it as an aside really, but the overall interview itself is very good. abelson is a treat to listen to.


Thanks for the link. The paragraph you quote makes me think he is comparing Python's lambda to Scheme's equivalent, which of course will make Python's lambda seem broken. IIRC the course was taught in Scheme at one time, but it switched to Python because it seemed easier for students to grasp the basics that way.


> IIRC the course was taught in Scheme at one time, but it switched to Python because it seemed easier for students to grasp the basics that way.

as explained in the interview, the course changed to python because the course itself changed. they basically killed off the old course and created new courses built around their new degree program structure. the new course hits a lot of different aspects of electrical, computer, and software engineering, many of which heavily use existing libraries, so they seemed to pick python for this.

in my opinion, they could have easily written libraries in another language, so i suspect there were some politics at MIT that lead to the decision to use python.


It's not just Scheme; in Common Lisp and Haskell and every other language that supports lambda, lambda is a first-class construct that is used all the time. Python's lambda feels like a war veteran that had its legs blown off. Best policy is probably just to pretend it's not in the language.


> It's not just Scheme

Agreed. I only mentioned Scheme specifically because Abelson did in what was quoted.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: