4 ms·
Lisp/Scheme/Racket is a very simple language that is also very fluid and malleable. You can express ideas and computations very precisely, concisely, and intuit
by so-cal-schemer 2mo ago
Lisp/Scheme/Racket is a very simple language that is also very fluid and malleable. You can express ideas and computations very precisely, concisely, and intuitively. There really aren't any barriers as they (Scheme/Racket at least) are rooted in the Lambda Calculus which is a theoretical model equivalent to the Turing Machine. Any language feature you'd like can be expressed: Want standard infix math expressions or a borrow-checker? That's a macro. Want lazy evaluation? That's a simple change in a meta-circular evaluator. Want a language that is the simplest and most direct mapping to your problem domain? A DSL.
The syntax lends itself to easy structural editing way before LSPs..
Why Racket? Why Lisp?
https://beautifulracket.com/appendix/why-racket-why-lisp.html https://beautifulracket.com/appendix/why-racket-why-lisp.htm...
Why language-oriented programming? Why Racket?
https://beautifulracket.com/appendix/why-lop-why-racket.html https://beautifulracket.com/appendix/why-lop-why-racket.html
Creating Languages in Racket:
Sometimes you just have to make a better mousetrap.
https://queue.acm.org/detail.cfm?id=2068896 https://queue.acm.org/detail.cfm?id=2068896
Lisp is clay: the power of composable DSLs
https://fosdem.org/2026/schedule/event/HDE7JZ-lisp-is-clay/ https://fosdem.org/2026/schedule/event/HDE7JZ-lisp-is-clay/
The other powers of Lisps (interactive development, hot reloadability, restarts on error, etc) are more tied to the sophistication of their implementations and runtime environments.
- vatsachak 2mo agoBut I can use custom DSLs using macros in Rust or template Haskell. In Lean 4 you can even add grammar to the Lean parser. I feel like the good parts of lisps have been adopted by typed languages...
- so-cal-schemer 2mo agoAbsolutely. You can thank Lisp for paving the way. And in a way, those languages are part of the extended family.
- deleted 2mo ago[deleted]
- so-cal-schemer 2mo agoThe difference is in complexity. McCarthy has said Lisp was not initially patterned on the lambda calculus, but he borrowed its syntax. Much later at MIT, after teaching a predecessor to 6.001 on LC, GJS and his student GLS distilled Lisp to a language that had the semantics of LC plus extensions for mutation and IO to make it practical, creating the elegant minimalist language Scheme. Macros were used to make tighter, neater, more expressive code. https://wiki.c2.com/?LambdaCalculus https://wiki.c2.com/?LambdaCalculus https://research.scheme.org/lambda-papers/ https://research.scheme.org/lambda-papers/ Someone please correct this bold statement: Every advancement in programming languages since then can be implemented in Scheme. (See the explosion of experiments using Racket -- typed variants as example.) It was politics, inertia/"tech debt", established tastes, and ego/NIH that lead to the farrago of languages (partially derived from Lisp) that we have nowadays, but none are as simple, flexible, and versatile as Scheme/Racket.