David, You make an excellent point. I think the trace facility attempts to address your suggestion, but it is pretty brittle. For example with your first phrase the term Bident appears and is not well known, and the error provided is confusing. But it is complaining that f is unknown.
load'trace' trace'(f <) y' --------------- 6 Bident ----- f < f < --------------- 8 Paren ------ ( f < ) f < --------------- 0 Monad ------ f < (<6 2$256;'';16;(,'(');128;(,'f');2;(,'<');32;(,')');128;,'y'),<4 2$256;'';256;'';256;'';256;'' |value error: f | t_z=. (f<)((<6 2$256;'';16;(,'(');128;(,'f');2;(,'<');32;(,')');128;,'y'),<4 2$256;'';256;'';256;'';256;'') So below I supply a suitable value for f, f=: ;&$ , and try again. This time trace does not result in an error message even though y is undefined. trace'(;&$ <) y' --------------- 4 Conj ------- ; & $ ;&$ --------------- 6 Bident ----- ;&$ < ;&$ < --------------- 8 Paren ------ ( ;&$ < ) ;&$ < --------------- 0 Monad ------ ;&$ < (<8 2$256;'';16;(,'(');2;(,';');8;(,'&');2;(,'$');2;(,'<');32;(,')');128;,'y'),<4 2$256;'';256;'';256;'';256;'' +-++ |2|| +-++ ============================== +-++ |2|| +-++ So now I supplied a value for y and trace again. y=:'abc' trace'(;&$ <) y' --------------- 4 Conj ------- ; & $ ;&$ --------------- 6 Bident ----- ;&$ < ;&$ < --------------- 8 Paren ------ ( ;&$ < ) ;&$ < --------------- 0 Monad ------ ;&$ < (<8 2$256;'';16;(,'(');2;(,';');8;(,'&');2;(,'$');2;(,'<');32;(,')');128;,'y'),<4 2$256;'';256;'';256;'';256;'' +-++ |2|| +-++ ============================== +-++ |2|| +-++ But the answer is not quite right as I show next. (;&$ <) y +-++ |3|| +-++ So now I supply a more specific definition of y to trace: y__ . And trace works better. trace'(;&$ <) y__' --------------- 4 Conj ------- ; & $ ;&$ --------------- 6 Bident ----- ;&$ < ;&$ < --------------- 8 Paren ------ ( ;&$ < ) ;&$ < --------------- 0 Monad ------ ;&$ < 'abc' +-++ |3|| +-++ ============================== +-++ |3|| +-++ So, I am trying to suggest that the trace facility can be helpful but is so brittle and the results are stated in native J so that it can be frustrating. It is not easy to provide the help you request. On Thu, Feb 4, 2010 at 12:22 PM, David Ward Lambert <b49p23t...@stny.rr.com> wrote: > J is different! My condolences to someone who "just wants to > look up a symbol to learn its meaning". > > (f <) y > (< f) y > (f <"0 1 g) y > > > "What is missing is a reference for the novice who isn't > ready to commit such significant time to learn J, but > wants to understand some J code that they encountered on > Rosetta Stone or other web resource. This audience will > want to look up a specific symbol, and want it explained > in terms that do not rely on prior knowledge of J or any > of J's somewhat obscure terminology. That should be the > primary target audience for the J reference-tutorial." > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm