APL vs Types <https://www.youtube.com/watch?v=z8M...
# linking-together
k
APL vs Types

https://www.youtube.com/watch?v=z8MVKianh54

❤️ 1
g
i always feel like i need a second, stronger brain when i watch aaron give talks
💯 1
k
j
@Kartik Agaram A small note on the above: although they are quite different languages, APL and FORTH share the property — via point free style — that programs are usually made up of a small stream of composable tokens, which makes them both very dense and amenable to rapid pattern matching of the kind Hsu mentions in that video.
k
I think I mostly agree. There's a difference of degree, right? By making names a single grapheme (and not having a widely shared convention on line length?) APL is signalling a communal willingness to far greater compression, and a far smaller namespace. Forth seems to me to encourage creating new names.
j
APL is definitely more extreme here, though one does create new verbs in APL as well. The "single grapheme" point reminds me to mention that, aesthetically speaking, I find the switch from APL's symbol set to the multi-character symbols in J extremely unsightly, making everything look less like maths and more like line noise.
👍 1
k
On that note, I'm curious to hear feedback about Mu's verbose long names. I've tried a variety of styles in the past, and so it's quite likely that what I have right now is just a phase. Some drawbacks of it: * multi-word variables make it hard to tell when one variable ends and the next begins * long variables can drown out short ones * it's hard sometimes to separate action from subject. My instruction names don't get a comma after them, everything else on the line does. I'm not sure if that's too subtle.
j
My answer based on decades of experience is... it depends. 🤷🏻‍♂️
k
🙂 I just went looking for examples so I'll throw out a couple. Relatively benign: http://akkartik.github.io/mu/html/baremetal/life.mu.html More malignant: http://akkartik.github.io/mu/html/apps/tile/environment.mu.html#L100
j
I like these kind of long descriptive names in environments where most of the typing happens via computer assistance (completion interfaces, &c). They work against the hyper compressed APL "look for the pattern at a glance" thing a little bit, but they have the positive property of being extremely clear (when the names are good names, which -- as we all know -- is itself quite difficult to assure).
❤️ 1