Concatenative K
nsl.com
nsl.com
https://forums.fast.ai/t/apl-array-programming/97188
APL, J, K, etc don’t seem to get wide traction but have a devoted niche.
After watching his first several videos, I started learning a little APL and J, using browser playgrounds:
APL: http://tryapl.org/
much more interesting in my opinion is the XY language, here:
XY contains the primitives of k + 9 core primitives, in terms of which all the stack operations of joy can be defined:
-> queue [X^z Y] -> [X z]
<- stack [X^z Y] -> [z Y]
=> cache [X^z Y] -> [X Y^z]
<= uncache [X Y^z] -> [X^z Y]
/ use [X^z Y] -> [X z,Y]
\ mention [X z^Y] -> [X^z Y]
` enclose [X^z Y] -> [X^{z} Y]
disclose [X^{z} Y] -> [X^z Y]
( stack* [X Y] -> [X^[X] Y]
) queue* [X Y] -> [X^[Y] Y]
i've implemented the following modules: stack the basic Joy stack words, e.g. 'dup'
list list manipulation words, e.g. 'cons'
general general operators, e.g. 'pred'
predicates predicates, e.g. 'false?'
queue queue manipulation words, e.g. 'clear'
monads keywords for K monads, e.g. 'where' for '&:'
dot K amend and dmend
adverbs XY definitions for K adverbs, e.g. 'each/'
joy XY definitions for Joy combinators, e.g. 'linrec'
call call with current/partial continuation
io input-output convenience words
misc miscellaneous