Hacker News new | ask | show | jobs
by ufo 4064 days ago
For me, having first class functions with proper lexical scoping is enough to start feeling functional. That might sound like nothing but its surprising how few of the most popular languages get both of those right.
1 comments

What is proper lexical scoping? Does JavaScript get it right?
No. Javascript gets it horribly wrong without "var", still terribly wrong with "var", and somewhat better with "let".
I don't understand what let has to do with functional programming though (enclosing a variable within if () {} instead of function block etc). Do you mind elaborating?
The question wasn't about functional programming per se, but about lexical scope.

"let" keyword in ES6 allows Javascript to have "lexical" style scoping (with some caveats due to JS legacy).

That said, several ways of scoping a variable can be had in functional programming. Have a look here for some more explanation with regards to Common Lisp:

http://stackoverflow.com/questions/463463/dynamic-and-lexica...

The "this" keyword is also a mess. I wonder when well be able to start using the new arrow-syntax lambdas everywhere.