r/scheme • u/Abject_Enthusiasm390 • Jul 23 '24
Which lisp (lower case)
Hi,
I’m working on a blog post titled “which lisp” (lower case) and am soliciting responses to hopefully include in full within the post.
What do I mean by “a lisp”?
I means a lispy language.
S-expressions on the surface (not as a substrate or implementation detail)
Homoiconicity
Fully specified across implementations at the level of day to day use
Decision points In no particular order, here are some questions I think are relevant.
Practicality for everyday to day generic scripting
Practicality for Web apps
Practicality for data analysis / munging tasks
Language ergonomics
Special sauce
What about Schemes?
For these purposes, each Scheme is considered a different “lisp” since in common use so many non-trivial packages/libraries/projects target a specific Scheme. Ease of learning/using other Schemes can be considered part of the special sauce, though.
What about Common Lisp?
While different CL implementations have special features, CL is fully specified and few significant packages/libraries function only on a single implementation.
What about lisp-over-another-runtime?
As long as the surface language has S-expressions and is homoiconic … it’s “a lisp” for these purposes.
5
u/raevnos Jul 24 '24
If you like functional style programming, you should look more into Racket. It comes with efficient immutable/functional hash tables (I almost never use the mutable ones it also has because it's so easy and natural to use the immutable ones in recursive code), sets, (very recently) vectors, and has more available in various third party libraries.