Raul Miller, on rereading your message I see that you described exactly the
distinction what I was trying to make.  From your following paragraph, I
conclude that you call explicit what I called immediate. I think of
explicit as describing the use of arguments x or y.  I also know these
derived functions.

In an explicit definition, the definition can be used at "parse time" OR at
"execution time". By default, the explicit definition is used at "parse
time". However, if the definition contains the name x or the name y AND if
it contains the name m, the name n, the name u or the name v, then the
definition is not used until execution time.

While I've worked with several APLs, I have not encountered one where the
definition is executed without providing arguments to the derived
function.  Instead, reference invokes display, and assigning them creates a
link to the definition, much like a noun.  J does all of this when then
modifiers are what I'm used to.  I've just been looking for the rules to
avoid behavior I didn't intend.

I've gone through your counter examples, and the only one I find counter to
what I meant to communicate is:

     'hi!' 1 :'m return. x'

Congratulations on creating a reference to x which is never reached.  While
it does mean my rules for creating a definition which is not used until
execution time shouldn't have warned against x in the monadic definition,
the rest of the warnings about such uses of x seem worth communicating to
someone learning J.

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

Reply via email to