- Joined
- Mar 28, 2023
I like lisp because code is dataIt took me twenty five years of programming, with a decade or so of that being professionally, before the design of Lisp actually percolated into my brain. It took me developing a program that was deterministic and homoiconic in Prolog before it clicked that Lisp would have been superior, as I'm not using any of the non-determinism that Prolog is designed to provide. Now I firmly believe that "we've been doing it all wrong" in providing a multitude of operator conditions, like infix, postfix, et cetera. I think theoretical mathematics would do well to backport a consistent operator design into its theory. I believe it would make a lot of the awkward constructs mathematicians wrangle a lot more approachable. (But I'm mostly recapitulating the Metamath guys here.)
Almost all of today's Lisps focus on being run-time engines, but there's a really underserved niche for non-interpreted Lisp-like compiled languages, ie. without eval. There are some hints in this direction like Stalin Scheme and Chicken Scheme but these keep the interpreter.
You can write a lisp parser, and just load in the AST and snoop it, or you can evaluate it
It can be a scripting language, a data format, a preprocessor, you can compile it to bytecode, JIT compile it into assembly, or even regular compile it to assembly
It's ludicrously flexible, and you can write a program to parse lisp source into AST in very little time