A History of APL in 50 Functions
I wonder if array languages will find wider popularity some day with a bit more verbose notation. Take “Array Indexing” (#29):<p><pre><code>    {(,⍺)[(⊂⍴⍺)⊥¨⊃∘.,&#x2F;⍵]}
</code></pre>
Or “Inverted Table Index-Of” (#31):<p><pre><code>    (⍉↑x⍳¨x) ⍳ (⍉↑x⍳¨y)
</code></pre>
These could be written:<p><pre><code>    {(reshape lhs)[(enclose shape lhs)
      polynomial each disclose
      outer product reshape reduce rhs]}

    (transpose take x index each x)
      index (transpose take x index each y)
</code></pre>
Same terms, just with searchable words instead of symbols. (Don’t mind the specific words—I’m not much of an APL user!) It definitely sacrifices some important aspects of APL, but in exchange I think it gains something in terms of accessibility by explicitly writing the pronunciations you might have in your head anyway when reading &amp; writing the symbolic notation. It also encourages extracting reusable named definitions instead of repeatedly writing “idioms”.