On Mon, Sep 26, 2011 at 10:50 AM, The Geeko <[email protected]> wrote: > Marshall Lochbaum <mwlochbaum <at> gmail.com> writes: >> Step 1 is a problem. You never want to define global variables x and y . In >> fact, if you inspect the code for nl, you will find the line > > You are right about the line... as I have confirmed. But my point is that > this > is a flaw in the implementation of nl. For a more thorough discussion, see my > earlier reply regarding the inconsistency issue.
Which part? > If nl is simply going to treat 'x' and 'y' special (in an ad-hoc fashion)... > then, for consistency, let's also treat 'm', 'n', 'u' and 'v' special. All 6 > of > these are used within definitions -- but *not* reserved by the language > specification (as best as I can discern what that is). But x and y are "more special" than m, n, u and v. m=:n=:u=:v=:x=:y=: 0 F=:4 :'m,n' G=:4 :'u,v' H=:4 :'x,y' 'a'F'b' 0 0 'a'G'b' 0 0 'a'H'b' ab > At the very least, correct the issue with namelist, which currently (and > correctly so, imho) reports 'x' and 'y' thereby creating the "GOTCHA!" > experienced with nl and names. If you wanted, you could define: nl_z_=: 4!:1@(] -. -.~)&(i.4) Note, however, that this would deprive you of the left argument for names. For example other words, currently: '~wd' names_z_'' gives you all the z locale names which do not contain wd and '*wd' names_z_'' gives you all the z locale name which do contain wd and 'wd' names_z_'' gives you all the z locale names which begin with wd. But with the definition for nl which I have proposed here all of them would give a domain error. Meanwhile, changing the definition of nl_z_ does not eliminate the GOTCHAs -- it changes them, but does not eliminate them. -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
