User:⊂⍺m: Difference between revisions

Jump to navigation Jump to search
56 bytes removed ,  20:02, 10 July 2023
m
Line 23: Line 23:
Designing new array language:
Designing new array language:


I find myself wanting to create a new APL dialect that combines the leading features and concepts from Extended Dyalog and NARS (extended function domains), J (possibly function rank…?), BQN (first class functions, and maybe others), and k/q ("while" primitives similar to J's F[.:][.:]; elegant database interfacing). I'm leaning toward prefering a large set of convenient primitives (Jelly and Extended Dyalog are extreme exemplar) as opposed to the BQN philosophy of "it should be a primitive only if...". Certainly the truly essential/foundational primitives, and their essential sub-domains, should be partitioned separately from mere convenience primitives (e.g. J's Stitch and Laminate) in the documentation, though, so one is not overwhelmed by an infinite deluge of glyphs to memorize when coming to the language. I'm thinking this could well be implemented in Singeli or Vex (frameworks for writing array languages, upon which BQN and April are implemented), or even a modification of the J source code (much less likely). I'm also considering introducing optional low-level resource control, e.g. memory management, since it sort of pains me to think that if someone wanted to develop an modern AAA video game in APL, they (apparently) currently wouldn't be able to (although maybe you could in April…? I'm not sure if Lisps allow such fine-grained control, but I don't expect so; plus I found interfacing with April to be painful). It would be nice to have an (open-source) APL that can be used practically for everything you'd want to use it for.
I find myself wanting to create a new APL dialect that combines the leading features and concepts from Extended Dyalog and NARS (extended function domains), J (possibly function rank…?), BQN (first class functions, and maybe others), and k/q ("while" primitives similar to J's F[.:][.:]; elegant database interfacing). I'm leaning toward prefering a large set of convenient primitives (Jelly and Extended Dyalog are extreme exemplars) as opposed to the BQN philosophy of "it should be a primitive only if...". Certainly the truly essential/foundational primitives, and their essential sub-domains, should be partitioned separately from mere convenience primitives (e.g. J's Stitch and Laminate) in the documentation, though, for the purpose of learning the language. I'm thinking this could well be implemented in Singeli or Vex (frameworks for writing array languages, upon which BQN and April are implemented), or even a modification of the J source code (much less likely). I'm also considering introducing optional low-level resource control, e.g. memory management, since it sort of pains me to think that if someone wanted to develop an modern AAA video game in APL, they (apparently) currently wouldn't be able to (although maybe you could in April…? I'm not sure if Lisps allow such fine-grained control, but I don't expect so; plus I found interfacing with April to be painful). It would be nice to have an (open-source) APL that can be used practically for everything you'd want to use it for.


== Proficiency level in APL and J ==
== Proficiency level in APL and J ==
trusted
83

edits

Navigation menu