>>7
JS is especially bumpy if you come from a Lisp background, because JS code uses plenty of closures but it also uses imperative control structures, which means that 90% of the time the closure is referencing cells that have changed. (Same reason why closures suck in Python or a few other languages, though they're still better than using STL-style stuff).
This is why we revere Scheme and Haskell: closures should capture
values and not
references.