Good links. Thanks.
On Wed, Jun 7, 2017 at 11:12 PM, Ian Clark <[email protected]> wrote: > NuVoc tries to help the beginner in this topic with these two ancillary > pages: > http://code.jsoftware.com/wiki/Vocabulary/EmptyArguments > http://code.jsoftware.com/wiki/Vocabulary/Idioms > > If anyone thinks these treatments need improving, this is a wiki and you > are allowed to alter it. > > However bear in mind that beginners may have a better perspective on this > than us experts. > > On Thu, Jun 8, 2017 at 12:42 AM, 'Pascal Jasmin' via Programming < > [email protected]> wrote: > > > A hopefully useful illustrative tutorial on i. 0 0 vs i.0 or '' > > > > > > > > 1 2 , 3 4 , i. 0 0 > > 1 2 > > 3 4 > > > > 1 2 , 3 4 , i. 0 > > 1 2 3 4 > > > > EMPTY is an empty table, where appends add rows, while NULL is an empty > > vector where appends add items. > > > > Though Bill pointed out that this was just chosen based on console print > > behaviour. > > > > ________________________________ > > From: robert therriault <[email protected]> > > To: [email protected] > > Sent: Wednesday, June 7, 2017 12:01 PM > > Subject: Re: [Jprogramming] Empty lists? > > > > > > > > I'm going to look at these results through the lens of Shape ($) > > > > f =: (1&,) > > f 2 > > 1 2 > > $ f 2 NB. shape is 2 > > 2 > > f '' > > 1 > > $ f '' NB. shape is 1 > > 1 > > empty NB. it is a verb in my environment > > (i.0 0)"_ > > f empty > > f empty NB. result of two verbs and no arguments is just the two verbs > > f empty 2 NB. this is where you expect to have a 1 returned > > > > $ f empty 2 NB. shape is 1 0 > > 1 0 NB. one line of no items means no display > > > > I think it is the second dimension of EMPTY as opposed to NULL that is > > tripping you up. > > > > NULL=.'' > > $ NULL > > 0 > > EMPTY > > $EMPTY > > 0 0 > > EMPTY-:empty 1 > > 1 > > > > In answer to your most recent question Michael, I would say just make > sure > > that the empty list that you pass is the right shape. > > > > Cheers, bob > > > > > On Jun 7, 2017, at 8:48 AM, Raul Miller <[email protected]> wrote: > > > > > > empty is a verb > > > f is a verb > > > > > > so f empty is a verb (a hook) > > > > > > f=: 1&, > > > (f empty) 3 > > > > > > > > > > > > $(f empty) 3 > > > 3 0 > > > $(f empty) 5 > > > 5 0 > > > > > > The reasons for this are documented at > > > http://www.jsoftware.com/help/dictionary/dictf.htm (hooks) and > > > http://www.jsoftware.com/help/dictionary/d630n.htm (x m&v y). > > > > > > That said, verbs take arguments and empty is a verb - it always > > > produces an empty result, but only when it gets an argument. > > > > > > I hope this helps, > > > > > > -- > > > Raul > > > > > > > > > On Wed, Jun 7, 2017 at 11:39 AM, Michael Rice <[email protected]> > > wrote: > > >> Oops! Guess I creamed empty. Will close and regen Jqt before > proceeding. > > >> > > >> Done! > > >> > > >> f =: (1&,) > > >> f 2 > > >> 1 2 > > >> f empty > > >> f empty > > >> > > >> Shouldn't it have returned > > >> > > >> 1 > > >> > > >> ? > > >> > > >> On Wed, Jun 7, 2017 at 11:22 AM, robert therriault < > > [email protected]> > > >> wrote: > > >> > > >>> One thing to remember is that empty is already defined as a verb > > >>> > > >>> empty > > >>> (i.0 0)"_ > > >>> > > >>> So if you overwrite this you may break some code if you have > previously > > >>> relied on the existing verb definition. > > >>> > > >>> I think along the lines that Pascal mentioned that null could be > > similarly > > >>> defined as > > >>> > > >>> null NB. check that it is not already used > > >>> |value error: null > > >>> null=:(i.0)"_ > > >>> NULL NB. check that it is not already used - uppercase for global > > >>> nouns is a convention I like and is often seen in J code > > >>> |value error: NULL > > >>> NULL=:'' NB. I use this as the null string (same as what John > > suggested) > > >>> NULL-:null 2 NB. any argument produces NULL from null > > >>> 1 > > >>> > > >>> Hope this helps, > > >>> > > >>> Cheers, bob > > >>> > > >>>> On Jun 7, 2017, at 8:09 AM, 'Jon Hough' via Programming < > > >>> [email protected]> wrote: > > >>>> > > >>>> > > >>>> I may be wrong in doing this, but I usually write > > >>>> empty=: '' > > >>>> to signify an empty list, array, matrix etc. > > >>>> > > >>>> > > >>>> On Jun 7, 2017, 23:59, at 23:59, Michael Rice <[email protected]> > > >>> wrote: > > >>>>> Is there a special "noun" for an empty list? > > >>>>> > > >>>>> Creating one seems enigmatic. > > >>>>> > > >>>>> empty =: 1 2 > > >>>>> empty > > >>>>> 1 2 > > >>>>> empty =: }. empty > > >>>>> empty > > >>>>> 2 > > >>>>> empty =: }. empty > > >>>>> empty > > >>>>> > > >>>>> empty1 =: > > >>>>> |syntax error > > >>>>> | empty1=: > > >>>>> ------------------------------------------------------------ > > ---------- > > >>>>> For information about J forums see http://www.jsoftware.com/ > > forums.htm > > > > >>>> ------------------------------------------------------------ > > ---------- > > >>>> For information about J forums see http://www.jsoftware.com/ > > forums.htm > > >>> > > >>> ------------------------------------------------------------ > ---------- > > >>> For information about J forums see http://www.jsoftware.com/ > forums.htm > > >>> > > >> ------------------------------------------------------------ > ---------- > > >> For information about J forums see http://www.jsoftware.com/ > forums.htm > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
