5 ms·
Author here. I wrote this because I thought APL deserved an up to date introductory text. It's basically the notes I kept when learning it myself. Stoked to see
by skruger 5y ago
Author here. I wrote this because I thought APL deserved an up to date introductory text. It's basically the notes I kept when learning it myself. Stoked to see it on HN.
- sxp 5y agoThanks for the writeup. I'm still not a fan of APL due to its non-ASCII characters, but I like the link to https://beyondloom.com/blog/denial.html https://beyondloom.com/blog/denial.html that you provided.
- moistly 5y agoI note that on my iOS iPad some of the symbols render as a empty boxes, e.g. in the Fizzbuzz example the left arrows point to an empty box. I have no idea if that is in fact the correct symbol—it could well be! (Also, I have no idea if this could be corrected.)
- moonchild 5y agoHeyo, I wrote a small critique[0] of it on lobsters. Nice stuff! Glad to see we finally have an alternative to mastering dyalog apl. 0. https://lobste.rs/s/stk8h0/learning_apl#c_g0p3y1 https://lobste.rs/s/stk8h0/learning_apl#c_g0p3y1
- alanbernstein 5y agoThanks for this. I don't know when I will make the time to learn new languages, but I think I've decided that when I do, one of the array programming languages is where I'll focus. This page seems like as good a place to start as any. The xkcd "light saber" thing made lisp seem appealing to me a few years ago, but after a brief intro to the array languages, now I think they're much more deserving of that comparison.
- arendtio 5y agoTo me it looks like one of the steepest learning curves I know: uncommon syntax, special characters, custom keyboard layout required, different dialects, ... And in the end, I wonder if it is more readable than regex which is sometimes considered 'write-only', because reading it can be so time consuming. I know you wrote about the readability topic, but I don't mean 'can I read it', but rather 'How much effort takes it to read it'.
- rak1507 5y agoI'd say there are two learning curves involved. The first is knowing what every symbol does. This sounds like it will be quite hard, but honestly probably takes less than a day. APL really doesn't have a lot of stuff to remember. It just looks a bit weird. The second learning curve however is the much harder part, learning how to write APL 'idiomatically'. This is mostly true in any language though, especially one in a different paradigm.
- leephillips 5y agoAPL, among its other advantages, does have a steep learning curve: you can learn it very quickly.
- foxfluff 5y agoAs someone who spent a few weekends learning APL: no, the learning curve is not that steep. The syntax is very simple, there's nothing scary about special characters if you can get over your fear of them, custom keyboard layout is absolutely not required (I've never used a custom layout for APL or Japanese or Cyrillic or Greek or any other non-latin characters that I type on a keyboard). Dialects are a thing but Dyalog is such an obvious choice if you want to learn APL that I wouldn't even worry about the rest. (K is worth looking into for its own sake but I don't consider it a dialect of APL; J might be a dialect worth exploring but so far it didn't impress me much and I found it much harder to read than APL). One more thing: I find that reading APL is easier than writing APL.
- giardini 5y agoarendtio says>"To me it looks like one of the steepest learning curves I know: uncommon syntax, special characters, custom keyboard layout required, different dialects, ..."< so, while a considerably smaller language, it's like learning Chinese (for someone who uses a Western alphabet)?
- tigershark 5y agoMaybe I’m missing something, but at the bottom there are these two statements: 7×3 ⍝ Dyadic × is multiplication ׯ7 ⍝ Monadic × is 'direction', or signum (the sign, in our case). Thanks. And looking at the output I can see: 21 ¯1 Is it a typo or really -7 is becoming -1 for some esoteric reason that escapes my comprehension?
- leprechaun1066 5y agoIt's the sign of the number. -7 is negative so you get -1. 7 gives you 1 and 0 gives 0. ×-7 ¯1 ×7 1 ×0 0
- yiyus 5y agoIt's not a typo. Monadic × will return 1 if the right argument is positive, ¯1 (minus one) if it is negative, and zero if it is zero.
- nudpiedo 5y agoisn't there any way to download the whole thing as PDF rather than just each section?