*(moved from: Programming Forum)*
Henry wrote:
> they demonstrate that you can have a grammar without syntax: that V V V
can mean something.
Hits the nail on the head!
But let me establish which nail…
There's a joke that runs like so:
Q: What's the best thing about APL?
A; The character set.
Q: What's the worst thing about APL?
A; The character set.
This joke can be ported to J:
Q: What's the best thing about J?
A; Tacit code.
Q: What's the worst thing about J?
A; Tacit code.
Every hard discipline has its *pons asinorum* (=donkey bridge) and what
follows is J's…
Let y be a noun and let V1, V2 be verbs. Now
V1 V2 y
is NOT the same as:
(V1 V2) y
and:
V1 V2 V3 y
is NOT the same as:
(V1 V2 V3) y
But at this point in the journey the natives are waiting to roll rocks down
on you. Most J newcomers don't make it over the bridge.
And that includes many APLers, who *are* familiar with the theory and
practise of function composition (let's call it f-c)
They have a special character for it: (∘), aka {jot}. The character they
*don't* use is ascii 32, aka Space. To them the idea of doing so is
egregious.
There's worse to come:
(V1{jot}V2) y
...in APL, is not the same as:
(V1 V2) y
…in J. It has to be written:
([: V1 V2) y
Right… now try explaining *that* to an APLer in one sentence.
Or to an expert in any other computer language, especially one that has f-c
(e.g. Python or Swift).
Now it's not that I don't have some ideas for coaxing the donkey over the
bridge.
But I'd like to hear what others say to my critique of f-c in J, because I
might learn something to my advantage.
(NOTE: I'm daring someone to tell me there's a vast literature on the
topic, going back to 1990. Guess how I'm going to reply.)
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm