4 ms·
Off the top of my head: Scheme, Tcl, Prolog, ML, Kernel, Rust, and Kitten. Each one blew my mind in one way or another when I first encountered it. On a relat
by groovy2shoes 11y ago
Off the top of my head: Scheme, Tcl, Prolog, ML, Kernel, Rust, and Kitten. Each one blew my mind in one way or another when I first encountered it.
On a related note, Go is the most utterly uninteresting language I've encountered in recent memory. Depending on where you're standing, that can be an argument in its favor.
- vram22 11y agoThanks. Of the ones you mention, in the past, I've explored Scheme, very little, Tcl a little, and Prolog a little. Did not know about Kernel and Kitten. Kernel looks very advanced. Will check out Kitten. I thought you were kitten me at at first - about the name :)
- vram22 11y ago> Tcl a little Actually Tcl more than a little, in the context of Expect, and also some with Tk (and Tkinter in Python, though that is about the toolkit, not the Tcl language). Tcl definitely is mind-blowing in its dynamic nature. So are the capabilities of Expect, actually. I read most of the Expect book by its author, Don Libes. He goes very deep into it. Fascinating. Even his writing style is unique.
- groovy2shoes 11y agoWhat I found most interesting about Tcl was its capacity for metaprogramming, due in large part to its quoting mechanism. Due to this, procedures in Tcl wind up somewhat akin to the fexpr construct found in some ancient Lisp dialects -- a construct which forms the theoretical basis for Kernel, albeit in a rigorous, formal manner called "vau calculus".
- vram22 11y ago>What I found most interesting about Tcl was its capacity for metaprogramming, due in large part to its quoting mechanism. Cool. Ah yes, memories coming back a bit now. (Had read both the Ousterhout (Tcl and Tk) and Libes (Expect) books years ago.) I remember that though the Libes book is about Expect, he does go into talking about Tcl a lot, including some of the advanced features you mention (though always or a lot, in the context of how they are used in Expect). I guess part of its (Tcl's) dynamic nature comes from the fact that everything in Tcl is a string (and the quoting and the ability to evaluate expressions), like everything in Lisp is a list (or an atom).