If negative rank passed through compounds, consider what the result of ]@(#"_1) i.2 3
would be. Henry Rich On Aug 8, 2017 00:49, "Raul Miller" <rauldmil...@gmail.com> wrote: > Negative rank is a convention - it means the rank is relative to the > noun rank. I'm not sure what a rank less than 0 would mean otherwise. > > Thanks, > > -- > Raul > > On Mon, Aug 7, 2017 at 7:15 PM, Louis de Forcrand <ol...@bluewin.ch> > wrote: > > I see. So negative ranks are sort of placeholders, and are replaced by > > positive (effective) ranks internally during evaluation? > > Because it could just announce its rank to be negative, and not actually > > calculate the effective rank until it is really needed (a lazier > effective rank > > evaluation if you will): > > > > x u”_1/ y <-> x u”_1”_1 _ y NB. evaluate effective rank here > > <-> x u”_1”((0>.(#$x)-1) , _) y NB. and here > > <-> x 4 : ‘x u”((0>.(#$x)-1),(0>.(#$y)-1)) y'”((0>.(#$x)-1) , _) y > > > > instead of > > > > x u”_1/ y NB. just here > > <-> x 4 : ‘x u”((0>.(#$x)-1),(0>.(#$y)-1)) y’/ y > > > > What I mean is that I would’ve made v=: u“r with r<0 report rank r, and > if an > > operator needs to know the rank of v, then just feed it r and let it > deal with > > calculating the effective rank. > > > > Of course their are probably implementation limitations which I do not > know of. > > > > Thanks for your explanation! > > > > Louis > > > >> On 07 Aug 2017, at 18:29, Raul Miller <rauldmil...@gmail.com> wrote: > >> > >> The rank of +"_1 is infinite because the derived verb has to see the > >> full ranks of its arguments to figure out what rank to use for the > >> inner verb. > >> > >> In other words, -"_1 in -"_1 i.3 3 has an effective rank of 1, but in > >> -"_ i.3 it has an effective rank of 0. > >> > >> Since it can't know what rank to use until after it sees the nouns, > >> its announced rank has to be infinite. > >> > >> Thanks, > >> > >> -- > >> Raul > >> > >> > >> On Mon, Aug 7, 2017 at 4:40 PM, Louis de Forcrand <ol...@bluewin.ch> > wrote: > >>> +"0/~ i.3 > >>> 0 1 2 > >>> 1 2 3 > >>> 2 3 4 > >>> +"_1/~ i.3 > >>> 0 2 4 > >>> +"0 b.0 > >>> 0 0 0 > >>> +"_1 b.0 > >>> _ _ _ > >>> > >>> I understand that this is dictionary compliant: > >>> > >>> "In general, each cell of x is applied to the entire of y . Thus x u/ > y is equivalent to x u"(lu,_) y where lu is the left rank of u ." > >>> > >>> +"_1 b.0 > >>> _ _ _ > >>> > >>> So u"_1/ -: u"_ _ . Wouldn’t it be better though if u"_1/ -: u"_1 _ , > >>> or if (u”_1 b.0) -: _1 _1 _1 (or any other negative rank)? > >>> I ran into this while trying to use ,"_1/ , which I can replace by > >@{@,&< , > >>> but I still find this strange. > >>> > >>> Louis > >>> > >>> ---------------------------------------------------------------------- > >>> 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