Yet, as I recall, some change in behavior was introduced rather recently, NB. Fresh sessions...
9!:14'' j902/j64/windows/beta-l/commercial/www.jsoftware.com/2020-11-05T15:47:37/clang-9-0-0/SLEEF=1 x&y x&y 9!:14'' j903/j64/windows/release-a/commercial/www.jsoftware.com/2021-12-16T15:20:38/clang-13-0-0/SLEEF=1 x&y |value error | x& y See, [Jprogramming] "accessor" concepts (jsoftware.com) http://www.jsoftware.com/pipermail/programming/2021-September/058773.html [Jprogramming] "accessor" concepts (jsoftware.com) http://www.jsoftware.com/pipermail/programming/2021-September/058775.html and [Jprogramming] "accessor" concepts (jsoftware.com) http://www.jsoftware.com/pipermail/programming/2021-September/058776.html On Tue, Aug 16, 2022 at 11:52 PM Henry Rich <henryhr...@gmail.com> wrote: > > Ah, now I remember. > > First, a little detail: when you have the name 'func' in a sentence, and > func is defined as a non-noun, what actually gets put onto the execution > stack is > > 'func'~ > > This is what we mean by a 'reference' to the name func. The reference > is a non-noun, and when it gets executed, the name 'func' is looked up > (again) and its value is executed. > > [For those of us who worry about clock cycles (a set whose cardinality > is perhaps one), the second lookup is wasted effort, and all the more > vexing because of search paths and multiple threads; whence we have > nameref caching and special treatment of nameless adverbs and one-word > references.] > > Using references, a tacit function can refer to an undefined name, and > as long as the name is resolved before the function is /executed/, all > will be well. > > BUT. Consider the sentence (in an explicit modifier): > > u otherverb y > > What should be stacked for u? 'u'~ will not do, because that reference > will be passed to otherverb, in whose space u will not have the right > value when it is looked up. No, u must be passed by /value/; and > because there is no way to tell where a stacked value will go, /any/ > reference to u or v must be stacked by value (that is, its value is > stacked instead of 'u'~). > > What I have shown here is that u and v must be stacked by value rather > than by reference, always. > > In earlier versions of J, x and y were sometimes verb arguments to > modifiers (like modern u and v). Thus they too were stacked by value > always, as being easier than deciding when they needed to be values. > > And then m and n were treated the same way, because since they have to > be nouns anyway why not? > > Then, when a name that must be stacked by value is undefined, what is > there to do? Nothing except value error. > > Henry Rich > > > > On 8/16/2022 2:40 PM, Henry Rich wrote: > > The names mnuvxy have always been special, giving value error if they > > are not defined. I'm not sure that's necessary now, but that's how it > > is. > > > > The reason for having undefined names stack a reference is so that you > > can have recursive definitions. The need for that is less with mnuvxy. > > > > Henry Rich > > > > On 8/16/2022 2:30 PM, David Lambert wrote: > >> I think you've already explained this, but I don't recall why x and y > >> should have special status in global namespace. Perhaps I need to > >> study the current documentation and release notes? > >> > >> $ j > >> JVERSION > >> Engine: j904/j64avx2/linux > >> Beta-e: commercial/2022-07-16T19:24:59 > >> Library: 9.04.01 > >> Platform: Linux 64 > >> Installer: J904 install > >> InstallPath: /home/lambertdw/downloads/installs/j904 > >> Contact: www.jsoftware.com > >> > >> x&y > >> |value error > >> | x& y > >> X&Y > >> X&Y > >> > >> i_used_to_be_a_verb > >> |value error: i_used_to_be_a_verb > >> > >> Thanks, Dave. > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > > -- > This email has been checked for viruses by AVG antivirus software. > www.avg.com > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm