bug-apl
[Top][All Lists]

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

 From: Jay Foad Subject: Re: [Bug-apl] A couple of bugs, and a question on the power operator Date: Mon, 15 Aug 2016 13:22:03 +0100

The manual is here, see page 145: http://docs.dyalog.com/15.0/Dyalog%20APL%20Language%20Reference%20Guide.pdf

I'm not sure where Louis got the information about monadic G. I assure you that Dyalog APL does not examine G to see if it's monadic or dyadic. It always tries to apply G dyadically.

Jay.

On 15 August 2016 at 12:30, Juergen Sauermann wrote:
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

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

(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.

Thanks,
Jürgen

On 08/15/2016 10:16 AM, Jay Foad wrote:
On 13 August 2016 at 13:05, Juergen Sauermann 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
SYNTAX ERROR
(+⍨⍣g)1 ⍝ power operator tries to apply g dyadically
SYNTAX ERROR

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

Jay.