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 <[email protected]> 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 <[email protected]> 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