Hacker News new | ask | show | jobs
by brehaut 5449 days ago
"If you come from a javascript background, you will have a leg up on most people in terms of learning clojure. You get used to inlining functions pretty regularly."

You'd be better off listing the languages that don't have some sort of 'inline functions' than claims about javascript superiority here; Heres a handful of common imperative/OO languages that have an analogous construction: Python, Ruby, C#, Visual Freaking Basic Dot Net, Smalltalk, Objective C and other C languages with Apple's blocks extension, probably PHP and Lua…

1 comments

Of those Languages you listed, many don't have implemented function closures correctly.

Python doesn't allow you to mutate variables from enclosing scopes (by default, at least).

Ruby's blocks aren't first-class, they have to be converted to a Proc object first (and argument passing works differently than for methods).

Smalltalk blocks don't have to be able to call themselves recursively by the ANSI standard (most implementations allow that, but eg. Squeak/Pharo does not by default).

C on OSX doesn't have GC, so you have to manually specify which variables you want to capture (and how).

JavaScript was originally supposed to be Scheme, and thus has implemented lexical closures better than most other languages. ('this' however... don't want to talk about that train wreck)