Henry, I'm still a little lost. Is the final `npixels` a (monadic, in this case) verb which will take a noun argument, or is the current value of windowsize that noun.
If the latter, and windowsize is that noun, then what is the value of y in the original expression `[x] ".@'name' y`? If the former (`npixels` is a verb -- and this is the one I'm leaning toward), then what is the y value that is its argument? TIA. On Thu, Aug 23, 2018 at 9:41 PM, Henry Rich <henryhr...@gmail.com> wrote: > Often you need for a verb to refer to the value of a name when the noun is > executed, rather than when it is defined. So, rather than > > npixels =: */ windowsize > > which would just be a noun, you write > > npixels =: 3 : '*/ windowsize' > > to defer taking the value of (windowsize) until (npixels) is executed. > > In tacit code, you used to write > > npixels =: */ @: ". @ ('windowsize'"_) > > to get the same result. Recently the syntax was added to allow > > npixels =: */ @: ". @ 'windowsize' > > All that still works. But the (".) verb starts the parser and executes > its y argument as a sentence, with a modest overhead that will matter if > the verbs have small ranks. Now, you can write > > npixels =: */ @: (". @ 'windowsize') > > [parentheses important! make sure you see why]. When (npixels) is > defined, this form will detect that the argument to (".) is a single name. > When (npixels) is executed, the name will be evaluated without going > through the overhead of starting a sentence. > > Henry Rich > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm