12 ms·
"There are a number of features related to lambdas that are present in other APL interpreters but that are NOT implemented in GNU APL. This includes multiple st
by vincent-toups 7y ago
"There are a number of features related to lambdas that are present in other APL interpreters but that are NOT implemented in GNU APL. This includes multiple statements, guards, lexical scoping, and probably more. "
The absence of lexical scope is a big wart for me. I'm fairly familiar with J, having used it to do some Bayesian inference for some projects at work, and I eventually concluded that the language family is malformed, in part because of the absence of lexical scoping.
Seems like Dyalog APL does have this feature, which makes me want to take a look at it.
- triska 7y agoA nice overview of a few interesting Dyalog extensions is Direct Functions in Dyalog APL: https://www.dyalog.com/uploads/documents/Papers/dfns.pdf https://www.dyalog.com/uploads/documents/Papers/dfns.pdf For example, you can write {expr} to introduce a Direct Function (dfn), where expr is an APL expression in which α and ω represent, respectively, the left and right argument of the dfn. Dfns also support local definitions, and recursion with ∇.
- vincent-toups 7y agoLooks neat. After using J for awhile I've come to dislike the who monad/dyad thing. It must be an old Lisper thing, but I wish there was just a regular argument list and all the arguments had the same semantics. I know in J you can used an array of boxed objects to "simulate" "normal" function definitions except that you don't get the rank behavior for those argument lists. Nothing prevents a language from having "normal" functions and also being able to support rank on each argument.