@robert therriault my_empty =: }. 1
my_empty f my_empty 1 < my_empty ┌┐ ││ └┘ An empty box? I'm beginning to see the problem I was thinking of doing in J is ill-suited to the language. It could be done, as it could in any computer language, but the solution would be pretty kludgy. I'll soon think of something else on which to apply J. It's already invading my sleep. Going through exercises is no way to get into a language. One needs a problem on which to focus it. I've been wanting to explore cryptography more deeply, and J seems ideal for it. Thanks to all, Michael On Wed, Jun 7, 2017 at 12:01 PM, robert therriault <[email protected]> wrote: > 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
