4 ms·
Interesting is in the eye of the beholder. SQL is interesting because it forces you to think in terms of sets. And because it wants you to tell it what to do b
by stray 11y ago
Interesting is in the eye of the beholder.
SQL is interesting because it forces you to think in terms of sets. And because it wants you to tell it what to do but not how to do it.
Lisp is interesting because:
It is expressed in one of its own primary data types: the list.
But the thing that reads Lisp -- the Lisp reader, is itself programmable. So if you want it to understand JSON syntax for example, or maybe Python dictionary literals -- you can write reader macros to add the new syntax.
And of course because it can manipulate data stored in lists, that means it can manipulate source code. Code in Lisp, is data. And data can be code if you need it to. That's essentially what Lisp macros are: code that writes code on the fly.
The backquote facility. This is basically a little template language for rewriting data structures on the fly. It is the killer feature that, along with the reader, enables the killer feature lispers won't shut up about.
The condition system. It separates signaling of conditions (including errors) from the decision about how to deal with them. One implication of this is that when an error is reached, you need not unwind the stack to handle it.
And because it is pretty.
- vram22 11y ago> Interesting is in the eye of the beholder Of course. I was asking for personal opinions. This question cannot be answered objectively. Agreed on both sets and being declarative for SOL.
- vram22 11y agoThat's some good points about Lisp. I did know about the fact that code is data (everything is a list) and so Lisp programs can write programs, parse their own code more easily than other languages can, etc. Didn't know the reader was programmable. Do remember reading a PG article, where I think he said in Lisp, reading can be done compile or run time, compiling at read or run time, and so on - all 3 possibilities. Not sure what the uses of those are though, since I don't know Lisp much. Find it interesting, though, for sure. I've read some of Practical Common Lisp by Peter Seibel, and parts of a few other small tutorials. Do you have any other recommendations? Also, what Lisp would you recommend for someone learning it, in the early stages? Didn't know about the backquote facility or that point about the Lisp condition system. Will check it them. Thanks for all the info.
- stray 11y ago> Also, what Lisp would you recommend for someone learning it, in the early stages? I'm partial to Common Lisp and I think it fits the brain pretty easily. But Racket is a good choice too. There is a nice, friendly development environment and plenty of libraries and learning materials. > Do you have any other recommendations? Sure. Check out SNOBOL: http://www.snobol4.org http://www.snobol4.org Oh, and Pharo Smaltalk is definitely worth looking at, imo.
- vram22 11y agoThanks for the answers and suggestions. Will check some out.
- vram22 11y agoJust remembered, I had tried out the Icon language some years ago, for a while. Interesting, and had some unusual features. Just saw in the SNOBOL Wikipedia article that it influenced Icon (and also Lua). And Ralph Griswold was involved in both languages, SNOBOL and Icon. https://en.wikipedia.org/wiki/SNOBOL https://en.wikipedia.org/wiki/SNOBOL https://en.wikipedia.org/wiki/Ralph_E._Griswold https://en.wikipedia.org/wiki/Ralph_E._Griswold
- vram22 11y agoIt definitely is pretty, or elegant. Compact and yet powerful, I can see that even though I only know a little of it.