[Top][All Lists]

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

Re: [Bug-apl] A couple of bugs, and a question on the power operator

From: Juergen Sauermann
Subject: Re: [Bug-apl] A couple of bugs, and a question on the power operator
Date: Mon, 15 Aug 2016 13:30:10 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

Hi Jay,

I see. Maybe I misunderstood Louis,s email from last Saturday completely?
The way I read this email was that in Dyalog APL version 15 you can have
a monadic condition function G in F⍣G . Quote from the email:

The Dyalog 15.0 manual states that the power operator can take a
function right argument. In this case, that function can be
either monadic or dyadic, and can be a lambda.
If it’s monadic:

  (F⍣G) ⍵  ←→  ⍵ ←   F ⍵  until          G ⍵
⍺ (F⍣G) ⍵  ←→  ⍵ ← ⍺ F ⍵  until          G ⍵

If it’s dyadic:

  (F⍣G) ⍵  ←→  ⍵ ←   F ⍵  until  (  F ⍵) G ⍵
⍺ (F⍣G) ⍵  ←→  ⍵ ← ⍺ F ⍵  until  (⍺ F ⍵) G ⍵

(Note that G is checked before the first time F is executed.)

I don't know if that statement is correct or not, but if it is then I would prefer to not
introduce this "monadic case" in GNU APL for the reasons explained earlier.


On 08/15/2016 10:16 AM, Jay Foad wrote:
On 13 August 2016 at 13:05, Juergen Sauermann <address@hidden> wrote:
In "Mastering Dyalog APL" I haven't found the monadic case for the right function argument
G of the power operator. In that book G seems to be always dyadic. So the monadic case looks
like a new Dyalog invention. And, if it is defined like you say, IMHO not the ultimate wisdom.

There is no "monadic case". G is always applied dyadically, and if it happens to be a strictly monadic function then you'll get a SYNTAX ERROR:

      ⎕FX'r←g y' 'r←g>10' ⍝ g is strictly monadic
      2 g 4 ⍝ applying it dyadically gives an error
      (+⍨⍣g)1 ⍝ power operator tries to apply g dyadically

In general, Dyalog APL never examines a function operand to see whether it is monadic or dyadic, in order to treat them differently.


reply via email to

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