To avoid problems with u and m (and invisible local names), without bringing in the full weight of anonymous evoke or equivalent, you could always do something like
ncS=:3 :'nc <''z''[ ".''z=.'',y ' Here, a result of _1 indicates your string is ill-formed (not a valid J sentence), which precludes the need for :: (adverse). -Dan Sent from my iPhone > On Feb 28, 2014, at 6:12 PM, Dan Bron <[email protected]> wrote: > > Pascal Jasmin wrote: >> A cool feature you are using, is converting a tacit expression >> in a string to a tacit expression with +1 : y > > I believe Ambrus showed me that trick on the Wiki a few years ago. Or > maybe I picked it up from Raul. Anyway, I wish I could claim credit for > it, but I can't. > > However ... > >> which will work as long as the string doesn't contain u or m. > > What I can claim credit for is a method for evoking a arbitrary string of J > code tacitly (i.e. without using : so there are no problems with u or m or > accessing locally-defined names from within an explicit definition, etc). > > The method was overkill for your particular question and I didn't have > access to the scripts on the subway, but if you're interested, see [1] and > and later, building on that work, [2]. > > -Dan > > [1] "Anonymous evoke" (linking to Nabble because the relevant messsage in > the J archives is corrupt and incomplete): > > http://jsoftware.2058.n7.nabble.com/Researching-for-2D-intersection-for-Curves-td42648.html#a42656 > > [2] The verb "dont" allows anonymous evoke to be called as a verb: > http://www.jsoftware.com/pipermail/programming/2013-January/031236.html > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
