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

It's probably because, in an implementation of a staticly typed language, you have to treat all functions being passed around as closures. E.g. the type of a lambda expression needs to be one thing, and that is a closure. Whether or not any variables are actually closed over is irrelevant.



Couldn't the type of a passed around function simply be 'function'? Why does it have to be inaccurate?


Well a function may in general have closed over arguments. Therefore it needs to be a closure. (If you have lexical scoping that is)




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

Search: