4 ms·
I’m constantly amazed there isn’t a more standardized “transliteration” of APL into a slightly more verbose form that can be written easily on a conventional QW
by yodon 9y ago
I’m constantly amazed there isn’t a more standardized “transliteration” of APL into a slightly more verbose form that can be written easily on a conventional QWERTY keyboard (yes, I get it, APL devotees love the information density, but as this letter points out wacky keyboard requirements pose a pretty significant adoption barrier).
Is there some major “modern” language or library that I’m unaware is actually an APL in QWERTY clothing? I’d love to give it a try.
- userbinator 9y agoJ.
- evacchi 9y agoalso kdb's k and q languages
- KMag 9y agoThere's also the Open-Source https://en.wikipedia.org/wiki/A%2B_(programming_language) https://en.wikipedia.org/wiki/A%2B_(programming_language) which was written by the creator of K before he left Morgan Stanley.
- sammoorhouse 9y agohttp://www.aplusdev.org/ http://www.aplusdev.org/ Which includes maybe the (greatest;worst;most horrifying) header file: https://github.com/PlanetAPL/a-plus/blob/master/src/a/arthur.h https://github.com/PlanetAPL/a-plus/blob/master/src/a/arthur...
- deleted 9y ago[deleted]
- zenhack 9y agoWhile I agree with your point about the keyboard, I'm not actually sure that's what EWD was on about. He famously thought people should be learning to program without actually using a computer. My reading of the letter is that the complaint is about needing a computer at all.
- coldtea 9y ago>I’m constantly amazed there isn’t a more standardized “transliteration” of APL into a slightly more verbose form that can be written easily on a conventional QWERTY keyboard You can't be "constantly amazed" unless you have checked for those things -- because J (and other dialects) have been a thing for decades!
- dTal 9y agoI am more amazed that there is almost no version that supports English words properly. I get that APL fans are married to the terseness, but 1) it's trivial to do, all the symbols are named anyway, 2) if you're going to abandon the "custom symbols as a tool for thought" you might as well use words instead of line noise, since you have sacrificed the symbol-concept mappping, and 3) it'd be a great way to smooth the learning curve! You already have to remember what a concept is called and what it does - why impose remembering the symbol immediately? J supposedly supports English verbs as an alternate syntax - there's a library that purports to do this - but I have never managed to make it work in the interpreter at all. It's certainly a second class citizen, if not entirely broken. The only APL dialect that uses English words I've ever found is QNial. It's a lot of fun to program in as a result (its syntax is also cleverly compatible with s-expressions), but it's hampered primarily by the ancient interpreter and lack of bignum support.
- pvg 9y agoif you're going to abandon the "custom symbols as a tool for thought" you might as well use words instead of line noise, since you have sacrificed the symbol-concept mappping You've just replaced symbols, in that case, so to advocates it's a concession to typing, not expression or thinking.
- hoosieree 9y agoI think Q/KDB+ is probably the closest to what you're asking for - mostly English words with a direct mapping to the underlying array primitives. Regarding J specificaly: Some words (sort, inverse, each, every) are in the standard library and loaded by default. What have you tried? You can define your own cover words for the built-ins (here I've added a cap ([:) to signal a domain error if the word is used with 2 arguments when it expects 1, and vice versa): times =: [: : * signum =: * : [: sum =: +/ : [: count =: # : [: J programmers don't do this for the same reason JavaScript programmers don't do this: var ArithmeticOperationsLibraryWhichIsIncludedByDefault = Math; var TheLibraryRegardingTheBrowserWindow = window;
- masswerk 9y agoThere had been a verbose version for standard terminals in the early 1970s on the Burroughs B5500, the famous stack machine. (Similar to APL\360, but using transliterations for the various special characters. Originally by the Computer Science Group, University of Washington, modified by Burroughs. The technical report dates to Sept 1970, the Burroughs source code to May 1972.) Documentation & source code: http://www.softwarepreservation.org/projects/apl/APLSoftware/APLSystems/B5500%20APL/ http://www.softwarepreservation.org/projects/apl/APLSoftware...