|
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 |
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 afunction right argument. In this case, that function can beeither 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.
Thanks,
Jürgen
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 monadic2 g 4 ⍝ applying it dyadically gives an errorSYNTAX ERROR(+⍨⍣g)1 ⍝ power operator tries to apply g dyadicallySYNTAX 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.
[Prev in Thread] | Current Thread | [Next in Thread] |