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