It’s awe-inspiring to see a K program where the comments are in another APL variant (I can’t pretend to know which):<p><pre><code> {d:~1=':s:^x / s‿e←1⊸»⊸(>⋈<)' '=𝕩
c:^"aeiou"?_x@&d&~s / c←¬(s/𝕩)∊"aeiou"
x,:,/$`pig`dog c / ins←⥊c⊏["pig","dog"]
x@<(+\d),{3}#c+2*!#c} / ((+`s+e)∾3/c+2×↕≠c) ⍋⊸⊏ 𝕩∾ins
</code></pre>
This program implements a Pigdog Latin translator, <i>bien sûr</i>.
So the summary of that long post: we still need group but Shakti/k9 gets rid of it because it's too slow forcing the user to diy it with other primitives as needed?<p>I love it... It's the exact opposite of every other language design. Others: lets ship it with every tool a developer might ask for. K9: Occam's razor to everything. Nothing is safe.
From the way I often use Haskell, Matlab, and even crazy shell one-lines with lots of pipes, awk, sort, and other stuff, I often have the impression that array languages are exactly what I'm looking for for certain problems.<p>The question is... which array language should I pick? What are the reasons to pick one over the other?
Imagine what APL could do with a Haskell-style type system and enforced referential transparency.<p>APL programmers want to say their language is mathematical notation, well, <i>make it</i> mathematical notation.