[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Rank operator and function assignment

From: Juergen Sauermann
Subject: Re: [Bug-apl] Rank operator and function assignment
Date: Thu, 06 Mar 2014 12:31:41 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130330 Thunderbird/17.0.5

Hi Tobia,

I see, thanks for the explanation.

I will look into this, but can't promise too much short term because
it probably requires some rework of the parser.

/// Jürgen

On 03/06/2014 01:27 AM, Tobia Conforto wrote:
Hi Juergen

how does NARS2000 define f⍤B and A f⍤B (the standard does not)?
I can answer this.
f⍤y is just the function that would be applied to B in f⍤y B, so that one can 
give it a name: g←f⍤y and then apply it: g B

A f⍤B is a syntax error, because f⍤B becomes a function, which then lacks the 
right argument.

In GNU APL you can put the y in axis brackets to resolve the ambiguity.
I personally believe ⍤[y] B is a clearer syntax than ⍤y B.

       {'foo',⍵}⍤[1] 4 5⍴⍳10
This ambiguity between the right argument of the operator and that of the 
derived function (⍵⍵ and ⍵) or more rarely between the two left arguments (⍺ 
and ⍺⍺) is usually resolved using either parentheses around the derived 
function or using the right identity function ⊢ This is true even for other 
common operators:

        ⊂⍣3⊢⍳3   ⍝ enclose ⍳3 three times
        (⊂⍣3)⍳3   ⍝ same

Parentheses around the right argument mean something else in dialects with 
"strands" such as Dyalog:

        ⊂⍣3(⍳3)   ⍝ this produces the derived function ⊂⍣(3,⊂⍳3) which will 
give an error when applied

I would be wary of bracket notation on the rank operator, because it has a 
different meaning in Nars2000 (which I'm not sure I understand entirely) see 
That page mentions conforming to ISO 13751, so I would check whether the 
bracket notation should have a particular meaning according to it (maybe where 
they define bracket notation in general?)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]