1. Non-nouns have for a long time been stacked by reference (the JE creates a word for 'name~' and puts that on the stack).  This includes adverbs and conjunctions.

2. Yes, Ye Dic says that adv/conj will be stacked by value, but it wasn't.  My guess is that this is because it would be hard to debug explicit adv/conj if you didn't have a name to look for a stop in.

3. Recently I modified it so that adv/conj whose value contained no names is stacked by value.  There is a bug in this that messed up locatives, fixed for next beta.

4. But the parser has a different path for one-word sentences, and I neglected to make the change there also.  So your example gets the name stacked.

If I think about it I might fix the one-word path to match the other, if there are no gotchas.

Henry Rich

On 10/26/2020 9:43 PM, Raul Miller wrote:
The introduction of direct definition inspired me to revisit some
older code that I had abandoned, but in cleaning up that code, I
believe I have run into a name resolution issue which seems to be
handled wrong.

To illustrate:

example2=:1 :0
   expl=. :
   expl
)

    1 example2 3
expl 3

Normally, in J, names which represent verbs may be looked up later,
but names which represent nouns, adverbs and conjunctions are looked
up immediately.

Here,  if I use a different definition, we can see that this character
holds for nouns

example3=:1 :0
   expl=. 3
   expl
)
    1 example3
3

But, honestly, in adverb and conjunction results, I cannot think of
any good reason for a locally defined name to not be resolved.

(This is not a new issue. It's just something I stumbled over, testing
the new features.)

Thanks,



--
This email has been checked for viruses by AVG.
https://www.avg.com

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to