4 ms·
Exactly! They're both concatenative languages, or at least languages which have a concatenative subset. Juxtaposition is composition. APL/K and Forth also have
by RodgerTheGreat 7y ago
Exactly! They're both concatenative languages, or at least languages which have a concatenative subset. Juxtaposition is composition.
APL/K and Forth also have very concise syntax for declaring functions.
// JS
const foo = (x,y) => 1 + x * y
// K, lambda with implicit arguments
foo: {1+x*y}
// K, points-free
foo: 1+*
// Forth
: foo * 1+ ;
It's subtle, but I think making function declarations "lightweight" in this manner is important for encouraging factoring. In APLs the scale of the semantic units you give names to is a little different, but that's its own separate discussion.
- fiddlerwoaroof 7y agoIt would be interesting to have a forth where, if you try to pop from an empty stack, you get a function object that consumes the next things pushed onto the stack (i.e. functions are curried)