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

Reply via email to