I don't know the list of languages included in the book, but anyone interested should try out:
- J: https://www.jsoftware.com/#/ you'll learn arbitrary dimension arrays, verb composition and more
- Lisp: I don't know the right Lisp to recommend. Macros stand out as something to learn
- Forth: I don't know the right Forth to recommend. The stack is an interesting metaphor
- A constraint-based language: maybe https://www.minizinc.org constraints are super interesting
Those are all practical languages -- none is esoteric just for the sake of strangeness.
I don't think those languages would be "esoteric" in the meaning of the article (purposefully designed to be different for the sake of being different) but they are more like domain-specific languages designed to fit certain use-cases extremely well, and in doing so, depart from the traditional imperative model.
Yeah, as much as I love Common Lisp and prefer it to Scheme (despite learning Scheme first), the fact you can read the entirety of R7RS small in a single afternoon is, in my opinion, quite important in making the language approachable to beginners.
If you wish, you can install a package to run R7RS small program in Racket. Just run in the commend line
raco pkg install r7rs
or search r7rs in the package manager inside DrRacket.
It's not maintained by the core developers, but it pass all the test suit and if you ever find a bug and post an issue in github or in the discourse group, it will be fixed very soon.
> An esoteric programming language is a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use.
Ummm...APL, Prolog, and Rebol are extremely esoteric. Their share of total code out there has got to be like less than 0.0001% and their paradigms are considered extremely weird and not for general consumption . I don't agree with the definition of esoteric included above and by the original poster.
There are more of course.