3 ms·
I'm currently using Java and Javascript for work. Previously I used Scheme. I do find that scanning is important in Java and JavaScript because often you don't
by brlewis 11y ago
I'm currently using Java and Javascript for work. Previously I used Scheme. I do find that scanning is important in Java and JavaScript because often you don't need to read a whole section, just a piece. Back when I worked with Scheme, if I didn't need to read a whole section, generally the part I needed to know was right at the beginning. I think all Lisp dialects work this way.
The worst example is immediate function application in JavaScript. You get to the end and all of a sudden the }(); tells you everything you've just read is a different context than you thought it was. In Scheme (and probably most Lisps) you'd recognize immediate function application at the beginning as soon as you saw ((.
I don't know how people get really good at JavaScript without learning Scheme first.
- ahoge 11y ago> You get to the end and all of a sudden the }(); With most code conventions, you wrap immediately invoked function expressions (IIFEs) in parens: var foo = (function () { ... }()); The only purpose of those extra parens is to act as marker. Well, with block scope (`let` & `const`), IIFEs aren't really needed anymore.