4 ms·
Wrong.
by rtz121 4y ago
Wrong.
- stnmtn 4y agoI'm a software engineer interested in getting more productive at my job, which namely involves the current React/typescript ecosystem. I have no interest in lower-level programming as a career path. What benefits would learning Lisp provide me so that I "Need" to learn it?
- lispm 4y agoSome people recommend to learn some basics of Lisp to better understand JavaScript. Though one of the core Lisp/Scheme books now has a JavaScript edition: https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-1 https://mitpress.mit.edu/books/structure-and-interpretation-...
- User23 4y agoThere’s a solid argument that JavaScript is a Lisp descendant.
- dunefox 4y agoReading a couple chapters of SICP (https://xuanji.appspot.com/isicp/ https://xuanji.appspot.com/isicp/) or these articles might give you an idea: https://michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software/ https://michaelnielsen.org/ddi/lisp-as-the-maxwells-equation... https://queue.acm.org/detail.cfm?id=1039523 https://queue.acm.org/detail.cfm?id=1039523 https://www.defmacro.org/ramblings/lisp.html https://www.defmacro.org/ramblings/lisp.html
- stnmtn 4y agoI read the defmacro link and found it very interesting and cool; but I still feel as if I'm missing what makes this so earth-shattering? Do not get me wrong - it is insanely cool and wonderful to be able to modify lisp's syntax with lisp... but it just seems like that... it's cool. I don't see why this would be any different than defining a function like I normally do. Sure, I can create an entirely new operator that becomes valid syntax, like `*` which creates an exponential operator. But why is this more productive than simply defining a "exponent()" function or something similar? It seems also that tech debt would accrue incredibly fast as joining a lisp codebase would require learning almost an entirely new set of syntax. I'm sure I 'm missing something, but I can't see at all why I need to learn LISP. It's cool, neat, and wonderful... but that's about it from my understanding.
- dunefox 4y agoIt's not easy to get the point across just by reading about it. Id honestly say you should just learn some lisp and implement something cool. > I don't see why this would be any different than defining a function like I normally do. Because with functions you don't define any new syntax or implement a DSL; you don't have access to the compiler during read, compilation, and run time. This allows you to easily extend the language: do you miss list comprehensions from Python? Add it yourself with a macro. Want to generate boilerplate code? Macro. Prolog compiler? Yes. Basically anything in this book: https://github.com/norvig/paip-lisp https://github.com/norvig/paip-lisp > But why is this more productive than simply defining a "exponent()" function or something similar? It's not just about defining a new operator, you can basically implement a DSL with C-like syntax if you want to: https://github.com/y2q-actionman/with-c-syntax https://github.com/y2q-actionman/with-c-syntax