Yes, maybe that's where the wrongthink is.
In J terminology, the sentence is first converted to /words/ (most
languages call these 'tokens'), with the words /evaluated/ as far as
they can be in isolation. Anything that would be called a
/self-defining term/ is given a type at this stage. For example,
* is evaluated to be a primitive verb
& is evaluated to be a primitive conjunction
( is evaluated to (
'abc' is evaluated to a noun
123x is evaluated to an extended integer
5 12345678901234567890 (a single word) is evaluated to a list of 2
floating-point integers
non-self-defining words are given a special type:
foo is evaluated to a name
After the words have been given types and maybe values, they are
processed right to left according to the parsing rules. During the
parsing, a name is looked up and replaced by its stored type/value
(except when it is followed by an assignment copula =. or =:).
Henry Rich
On 8/15/2023 9:51 AM, Raul Miller wrote:
I think the inconsistency here is that you're thinking of a rather
elaborate parsing system used by some other language.
Brief overview of J's parser: A sentence is parsed first by tokenizing
it (left to right), then the resulting array of tokens is passed to a
shift/reduce parser (right to left). Conversion of numbers from
"sequence of characters" to "1 or more numbers" happens during
tokenization. Verbs execute during the shift/reduce stage.
See also https://www.jsoftware.com/help/dictionary/dicte.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm