User:Dan Bron/Temp/Hierarchy/Copulae

From J Wiki
Jump to: navigation, search

Think of [: g h in analogy to the sequence of tokens NAME=:. The verb train [: g h is a special case in Section F.; the "token train" NAME=: is a special case in a higher level of the hierarchy, Section E.

Contrast NAME=: and (NAME)=:: anywhere else in J using (NAME) in place of NAME will not change the sentence's results in any way. But that rule does not hold immediately to the left of a copula (either =: or =.).

In the parenthesized case, the value contained in NAME is assigned (via indirection) to the value to the right of the copula. For someone who'd never encountered a copula before (perhaps assuming it was a verb), this is the "more expected case". However, in the case of a bare name, the it is the letters composing the name that are assigned the value.

If copula were a verb, there would be no way it would even have access to the letters N A M E . In fact, there is no part of speech aside from copula which has this special power in every case, as names with the noun nameclass are always replaced by their evocations immediately, before they're passed as arguments (not true of other nameclasses).

But it is not NAME which is special or different: there are infinitely many such names, and all demonstrate the same behavior. It is the sequence of tokens TOKEN=: where TOKEN has the tokenclass name.

Similarly, it's not [: which is special or different: it is [: f g which is the anomaly. There are an infinite number of such sequences, and all demonstrate the same behavior.

Also similarly, the requirement that the first token in NAME=: be a name and not another tokenclass (e.g. inline noun) is analogous to the requirement that the first token in f g h be a verb and not another nameclass (e.g. adverb). Otherwise, the different semantics which have been assigned to those cases would be invoked.