[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: |
Louis de Forcrand |
Subject: |
Re: [Bug-apl] A couple of bugs, and a question on the power operator |
Date: |
Mon, 15 Aug 2016 22:22:46 -0400 |
Of course. If G could be either monadic or dyadic / ambivalent, F⍣G where G is
a primitive
function and not a lambda would be ambiguous as to the valence of G. I should
have thought
of that.
Thanks,
Louis
> On 15 Aug 2016, at 22:10, Christian Robert <address@hidden> wrote:
>
> Look at this
>
> {1+÷⍵}⍣= 256
> 1.618033989
> {1+÷⍵}⍣{⍺=⍵} 256
> 1.618033989
> {1+÷⍵}⍣{⍺=⍵⊣⎕←⍺ ⍵ (⍵-⍺)} 256
> 1.00390625 256 254.9960938
> 1.996108949 1.00390625 ¯0.9922026994
> 1.500974659 1.996108949 0.4951342905
> 1.666233766 1.500974659 ¯0.1652591074
> 1.600155885 1.666233766 0.06607788159
> 1.624939113 1.600155885 ¯0.02478322885
> 1.615407674 1.624939113 0.009531439632
> 1.619038783 1.615407674 ¯0.003631108845
> 1.61765043 1.619038783 0.001388352906
> 1.61818053 1.61765043 ¯0.0005301001708
> 1.61797802 1.61818053 0.0002025099168
> 1.618055368 1.61797802 ¯0.00007734757573
> 1.618025823 1.618055368 0.00002954477659
> 1.618037108 1.618025823 ¯0.00001128500832
> 1.618032797 1.618037108 0.000004310503058
> 1.618034444 1.618032797 ¯0.000001646463698
> 1.618033815 1.618034444 6.288934578E¯7
> 1.618034055 1.618033815 ¯2.402158839E¯7
> 1.618033963 1.618034055 9.175430926E¯8
> 1.618033998 1.618033963 ¯3.504702684E¯8
> 1.618033985 1.618033998 1.338677325E¯8
> 1.61803399 1.618033985 ¯5.113292456E¯9
> 1.618033988 1.61803399 1.953103901E¯9
> 1.618033989 1.618033988 ¯7.460192464E¯10
> 1.618033989 1.618033989 2.849540603E¯10
> 1.618033989 1.618033989 ¯1.088429347E¯10
> 1.618033989 1.618033989 4.157429956E¯11
> 1.618033989 1.618033989 ¯1.587974197E¯11
> 1.618033989 1.618033989 6.065370428E¯12
> 1.618033989 1.618033989 ¯2.316813408E¯12
> 1.618033989 1.618033989 8.850697952E¯13
> 1.618033989 1.618033989 ¯3.379518887E¯13
> 1.618033989 1.618033989 1.290079155E¯13
> 1.618033989
>
> power is always diadic on the function it call.
>
> > Its right argument then is _always_ the result of the previous iteration.
> > Is that correct?
>
> I really hope so. That was my understanding since several months. I may still
> be wrong.
>
> Xtian.
>
> On 2016-08-15 21:54, Louis de Forcrand wrote:
>> I'm sorry, _I_ misunderstood the manual. I did not know that Dyalog dfns
>> were always dyadic / ambivalent.
>>
>> If I understand correctly then, in F {pow} G, G's left argument is _always_
>> the result of the power operator if G is true. Its right argument then is
>> _always_ the result of the previous iteration. Is that correct?
>>
>> If it is, I believe always ambivalent lambdas would be convenient (aside
>> from possible implementation problems), but not at all essential; it's
>> probably rare to check something about the previous iteration without
>> comparing it to the current one. But wouldn't have been simpler to model
>> them as ambivalent from the ground up?
>>
>> Louis
>>
>> On 15 Aug 2016, at 08:22, Jay Foad <address@hidden <mailto:address@hidden>>
>> wrote:
>>
>>> 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 <address@hidden
>>> <mailto:address@hidden>> 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/
>>> ///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.
>>>
>>> Thanks,
>>> Jürgen
>>>
>>>
>>> On 08/15/2016 10:16 AM, Jay Foad wrote:
>>>> On 13 August 2016 at 13:05, Juergen Sauermann <address@hidden
>>>> <mailto: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
>>>> 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.
>>>
>>>
>
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, (continued)
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Kacper Gutowski, 2016/08/13
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Juergen Sauermann, 2016/08/13
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Kacper Gutowski, 2016/08/13
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Juergen Sauermann, 2016/08/14
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Jay Foad, 2016/08/15
Re: [Bug-apl] A couple of bugs, and a question on the power operator, Jay Foad, 2016/08/15
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Juergen Sauermann, 2016/08/15
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Jay Foad, 2016/08/15
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Louis de Forcrand, 2016/08/15
- Re: [Bug-apl] A couple of bugs, and a question on the power operator, Christian Robert, 2016/08/15
- Re: [Bug-apl] A couple of bugs, and a question on the power operator,
Louis de Forcrand <=
Message not availableRe: [Bug-apl] A couple of bugs, and a question on the power operator, Jay Foad, 2016/08/16
Re: [Bug-apl] A couple of bugs, and a question on the power operator, Juergen Sauermann, 2016/08/13
Re: [Bug-apl] A couple of bugs, and a question on the power operator, Louis de Forcrand, 2016/08/13