I've been working on a little array programming to...
# share-your-work
e
I've been working on a little array programming toy for a little bit. Published an intro blog post to it last night. I've spent the last few years smitten by array programming, but always finding it a tad bit unapproachable outside of profoundly boring (to me) corporate contexts. I'm attracted, though, to how spiky and terse array programming is, which feels very different to me than where I usually live in JS land. To make it more approachable, I made a little set of learning features loosely inspired by maria.cloud's approach. You can make tiny songs with it, too.
šŸ° 3
ā¤ļø 4
šŸ‘ 1
on a language design note, I wanted to keep it very small, while also having really clear separation between monadic and dyadic forms, which I think uiua does
also, if you know more about combinators than I do (which is likely...you know...everyone?) please let me know how bad I futsed up the birdwatching page
j
Interesting project! šŸ˜„ Array programming seems to be getting more attention lately. I'm also exploring this category of languages (only in my thoughts so far...) recently.
Reminds me also of Slap (from @Taylor Troesh), which is partly array programming inspired: https://taylor.town/slap-000
šŸ˜Ž 1
šŸ’“ 1
I agree Uiua feels like it has the clearest design by giving each operation only a single behaviour and number of arguments. (For anyone unaware, most other array languages glue two behaviours into one symbol depending on argument count, which to my newcomer brain at least, is much harder to learn and reason about.)
Marshall Lochbaum (BQN creator) discusses some of the pros and cons of this form of overloading: https://mlochbaum.github.io/BQN/commentary/overload.html
🪤 1
(Lots of great behind-the-scenes / "why is it like this" documentation on the BQN and Uiua sites, which I've found quite valuable as someone new to array languages.)
e
BQN's stuff is how I first got into array programming! Marshall's writing is some of the best out there that I've found that isn't super hyper duper super specifically geared towards math brains and quant folks
šŸ‘ 1
Decker's lil is also an absolute gem in the space of approachable array stuffs -- as are R and Julia, though I've spent much less time with those
āž• 3
k
There's also Python's NumPy extension, which started out as a subset of APL in Python syntax. All that is still there, in addition to later Matlab-inspired functions which make the API as a whole a bit less consistent.
āž• 1
e
since that blog post about kiki, I've focused on addressing feedback from the array programming discord, and also making a bunch of stuff to make kiki more approachable (because it is sharp and pointy) • learn • hymns (intro material to kiki's live coding environment)
šŸ° 2
the format was big time inspired by maria.cloud which is, essentially, the most impactful self guided pedagogical tool for learning code that I've personally ever experienced, and the live coding content is pretty directly modeled off of some tidal cycles materials I've explored in the past
there's also • ref, general lang reference • idioms, for common patterns • birds, for sickos what that like combinators ā¤ļø
I can't find evidence of this, but I think it was a @Jack Rusher paper or talk or something that poisoned me, smote me dead, for combinators (positive)
ā¤ļø 2