There's another language, J, created by the same guy who created APL, that's very APL-like but does have trains, forks, hooks, and so on.  I've looked at it in detail and concluded that while APL has a bit of a reputation as a write-only language, adding various tersifying constructs only makes that worse.  APL does indeed have a bit of a steep learning curve, but I found J to be worse--though I have to admit that the 40-year gap between my introductions to, respectively, APL and J may have been a factor in that.
So far as I can tell, there's little if any performance advantage to be 
had by the use of tacit programming.  All it really seems to do is make 
your code look more mysterious--and therefore cooler--but at the expense 
of being harder to debug.
On 2/24/21 3:30 PM, Russtopia wrote:
What is the general consensus among GNU APL users here on the newer 'tacit style' that seems so prevalent in many online APL resources nowadays? ('forks', 'trains', etc.)
As a new, inexperienced APLer, exploring a bit more with GNU APL, I 
wonder if it discourages people new to APL to find, as I have, that so 
many resources online appear to be quite Dyalog-focused so the 
examples do not work as presented within GNU APL.
I am aware that GNU APL is an 'APL2' implementation for the most part, 
which is fine by itself and I think it is important to have this 
open-source, free implementation. However it concerns me somewhat that 
newcomers to GNU APL may be discouraged to find so many examples 
online that are incompatible.
Perhaps if I were myself experienced enough, I would write a GNU APL 
equivalent to the 'APL cart' (aplcart.info <http://aplcart.info>) with 
a focus on translating common idioms from 'tacit style' to APL2 style. 
(Indeed, perhaps such resources exist and I apologize if I have merely 
not encountered them yet. I have yet to study in-depth the older 'Finn 
APL idiom library' and similar).
As for adding tacit style to GNU APL, I do not advocate one way or the 
other, as I do not have sufficient experience for an informed opinion. 
How much value would the 'tacit' syntax bring to GNU APL? Would it 
even be possible to add without breaking APL2 conformance?
I also see a lot of usage online of 'guards' within lambdas which GNU 
APL seems to lack -- would the language benefit from adding support 
for that or would many of you say it is just 'syntactic sugar'?
Just some thoughts from an APL newcomer. I enjoy it, and am grateful 
to Dr. Sauermann et al. for their hard work.
-Russ


Attachment: OpenPGP_0xDA6C01938888083E.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to