Whoops. Looks like I got here too late.
Well done!

Louis

> On 28 Apr 2016, at 00:29, Louis de Forcrand <ol...@bluewin.ch> wrote:
> 
> The three-item form is used if the associated function is ambivalent (applied 
> to the P-cells of ⍵ if monadic, applied to corresponding Q-cells of ⍺ and 
> R-cells of ⍵ if dyadic). I don't believe it is possible to define ambivalent 
> functions in ISO APL however, so it is kind of redundant. It is probably left 
> over from Sharp APL.
> 
> As to the negative rank, I believe that it is an obvious flaw in the 
> standard. Being able to apply a function to the items of the argument is 
> incredibly useful. Of course this is achievable like so:
> {⍺ (f ⍤ (¯1+≢⍴⍺⍵)) ⍵} ⍝ without ⍺ for the monadic form
> Now that I've checked, I'm pretty sure that GNU APL does support rank 
> (negative or not), but not with all primitives. Try it out with ⊖ or +⌿ on a 
> rank-3 or above array, and then with ]BOXING and ⊂ on the same array… looks 
> like a bug to me.
> 
> The rank operator isn't easy to grasp, and it's surely harder to implement.
> 
> Good luck,
> Louis
> 
>> On 27 Apr 2016, at 13:14, Jay Foad <jay.f...@gmail.com 
>> <mailto:jay.f...@gmail.com>> wrote:
>> 
>> Incidentally, it works like this in Dyalog and NARS2000 too, though
>> the Dyalog documentation doesn't mention the 3-item form.
>> 
>> Jay.
>> 
>> On 27 April 2016 at 09:02, Jay Foad <jay.f...@gmail.com 
>> <mailto:jay.f...@gmail.com>> wrote:
>>> Given g ← f⍤P Q R:
>>> P is the monadic rank
>>> Q is the left rank
>>> R is the right rank
>>> 
>>> So:
>>> g Y applies g to the P-cells of Y
>>> X g Y applies g to the Q-cells of X and the R-cells of Y
>>> 
>>> The ⌽3⍴⌽y1 stuff is just a too-cute way of saying that you can specify
>>> fewer than 3 values in the right operand, and:
>>> R is shorthand for R R R
>>> Q R is shorthand for R Q R
>> 
> 

Reply via email to