Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

"But this one goes to eleven." -- Nigel Tufnel


devel / comp.lang.apl / Re: Why don't lambda functions work inside defined functions?

SubjectAuthor
* Why don't lambda functions work inside defined functions?Brian McGuinness
`* Why don't lambda functions work inside defined functions?Rav
 `* Why don't lambda functions work inside defined functions?Charles Brenner
  `* Why don't lambda functions work inside defined functions?Bob Smith
   `* Why don't lambda functions work inside defined functions?Charles Brenner
    `* Why don't lambda functions work inside defined functions?Bob Smith
     `- Why don't lambda functions work inside defined functions?Brian McGuinness

1
Why don't lambda functions work inside defined functions?

<04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=359&group=comp.lang.apl#359

  copy link   Newsgroups: comp.lang.apl
X-Received: by 2002:ad4:5962:0:b0:462:11fe:b67c with SMTP id eq2-20020ad45962000000b0046211feb67cmr64199746qvb.50.1654459729527;
Sun, 05 Jun 2022 13:08:49 -0700 (PDT)
X-Received: by 2002:a25:4c6:0:b0:65c:9e2f:f51 with SMTP id 189-20020a2504c6000000b0065c9e2f0f51mr21148521ybe.11.1654459729286;
Sun, 05 Jun 2022 13:08:49 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.apl
Date: Sun, 5 Jun 2022 13:08:48 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=71.172.143.51; posting-account=h3IwYwoAAAAeE2lWQnRSCqcQ0dO-KDvQ
NNTP-Posting-Host: 71.172.143.51
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>
Subject: Why don't lambda functions work inside defined functions?
From: b.mcguinness747@gmail.com (Brian McGuinness)
Injection-Date: Sun, 05 Jun 2022 20:08:49 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1970
 by: Brian McGuinness - Sun, 5 Jun 2022 20:08 UTC

I have been experimenting with simple lambda functions to see how they work.. But I ran into behavior that I don't understand, and I haven't found good documentation to explain what is going on.

This works as expected:

({⍵,+/¯2↑⍵}⍣10) 0 1
0 1 1 2 3 5 8 13 21 34 55 89

But this doesn't work:


[0] A←FIBONACCI N
[1] A←({⍵,+/¯2↑⍵}⍣N-2) 0 1

FIBONACCI 12
¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1

If I tried to do this using only normal defined functions I would have to use two separate functions, so it seems to me that using a lambda function should be a cleaner way to perform the operation. But I don't see how to make this work.

--- Brian McGuinness

Re: Why don't lambda functions work inside defined functions?

<t7j9ls$9c4$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=360&group=comp.lang.apl#360

  copy link   Newsgroups: comp.lang.apl
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: invalid@invalid.invalid (Rav)
Newsgroups: comp.lang.apl
Subject: Re: Why don't lambda functions work inside defined functions?
Date: Sun, 5 Jun 2022 18:11:06 -0400
Organization: A noiseless patient Spider
Lines: 43
Message-ID: <t7j9ls$9c4$1@dont-email.me>
References: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 5 Jun 2022 22:11:08 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="cc04da38906acec9786e9a0e3835800d";
logging-data="9604"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX190H9AwmFhP8yiAtwQ68RTg"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Cancel-Lock: sha1:rnSYV7z+nS94pZaqs7b5bE0Jdjc=
In-Reply-To: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>
Content-Language: en-US
 by: Rav - Sun, 5 Jun 2022 22:11 UTC

On 6/5/2022 4:08 PM, Brian McGuinness wrote:
> I have been experimenting with simple lambda functions to see how they work. But I ran into behavior that I don't understand, and I haven't found good documentation to explain what is going on.
>
> This works as expected:
>
> ({⍵,+/¯2↑⍵}⍣10) 0 1
> 0 1 1 2 3 5 8 13 21 34 55 89
>
> But this doesn't work:
>
> ∇
> [0] A←FIBONACCI N
> [1] A←({⍵,+/¯2↑⍵}⍣N-2) 0 1
> ∇
>
> FIBONACCI 12
> ¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1
>
> If I tried to do this using only normal defined functions I would have to use two separate functions, so it seems to me that using a lambda function should be a cleaner way to perform the operation. But I don't see how to make this work.
>
> --- Brian McGuinness

If I understand correctly, it doesn't look to me like doing the same
thing with a defined function is doing anything differently. In
immediate execution mode:

({⍵,+/¯2↑⍵}⍣12-2) 0 1
¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1

But:

({⍵,+/¯2↑⍵}⍣(12-2)) 0 1
0 1 1 2 3 5 8 13 21 34 55 89

I'm not familiar with the power function, but perhaps it's a precedence
issue, which the parentheses solves. So change your defined function to:


[0] A←FIBONACCI N
[1] A←({⍵,+/¯2↑⍵}⍣(N-2)) 0 1

/ Rav

Re: Why don't lambda functions work inside defined functions?

<43e4afe3-e59f-4a67-8832-cc25e4595ea5n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=361&group=comp.lang.apl#361

  copy link   Newsgroups: comp.lang.apl
X-Received: by 2002:a05:622a:394:b0:304:eacb:2c69 with SMTP id j20-20020a05622a039400b00304eacb2c69mr6684169qtx.439.1654545794219;
Mon, 06 Jun 2022 13:03:14 -0700 (PDT)
X-Received: by 2002:a25:2a54:0:b0:663:7273:ad86 with SMTP id
q81-20020a252a54000000b006637273ad86mr9100705ybq.551.1654545793985; Mon, 06
Jun 2022 13:03:13 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.apl
Date: Mon, 6 Jun 2022 13:03:13 -0700 (PDT)
In-Reply-To: <t7j9ls$9c4$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:643:8400:84f0:2893:99f2:3d7b:3517;
posting-account=Xm2qywkAAACYHHbuiTr3jZAvmlcBOjgT
NNTP-Posting-Host: 2601:643:8400:84f0:2893:99f2:3d7b:3517
References: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com> <t7j9ls$9c4$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <43e4afe3-e59f-4a67-8832-cc25e4595ea5n@googlegroups.com>
Subject: Re: Why don't lambda functions work inside defined functions?
From: challambrenner@gmail.com (Charles Brenner)
Injection-Date: Mon, 06 Jun 2022 20:03:14 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3418
 by: Charles Brenner - Mon, 6 Jun 2022 20:03 UTC

On Sunday, June 5, 2022 at 3:11:09 PM UTC-7, Rav wrote:
> On 6/5/2022 4:08 PM, Brian McGuinness wrote:
> > I have been experimenting with simple lambda functions to see how they work. But I ran into behavior that I don't understand, and I haven't found good documentation to explain what is going on.
> >
> > This works as expected:
> >
> > ({⍵,+/¯2↑⍵}⍣10) 0 1
> > 0 1 1 2 3 5 8 13 21 34 55 89
> >
> > But this doesn't work:
> >
> > ∇
> > [0] A←FIBONACCI N
> > [1] A←({⍵,+/¯2↑⍵}⍣N-2) 0 1
> > ∇
> >
> > FIBONACCI 12
> > ¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1
> >
> > If I tried to do this using only normal defined functions I would have to use two separate functions, so it seems to me that using a lambda function should be a cleaner way to perform the operation. But I don't see how to make this work.
> >
> > --- Brian McGuinness
> If I understand correctly, it doesn't look to me like doing the same
> thing with a defined function is doing anything differently. In
> immediate execution mode:
>
> ({⍵,+/¯2↑⍵}⍣12-2) 0 1
> ¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1
> But:
>
> ({⍵,+/¯2↑⍵}⍣(12-2)) 0 1
> 0 1 1 2 3 5 8 13 21 34 55 89
> I'm not familiar with the power function, but perhaps it's a precedence
> issue, which the parentheses solves. So change your defined function to:
>
> ∇
> [0] A←FIBONACCI N
> [1] A←({⍵,+/¯2↑⍵}⍣(N-2)) 0 1
> ∇
>
> / Rav
Nice work. That solves the puzzle except for a small point of language. ⍣ is an operator hence, contrary to the rule for a function, it has short right scope - i.e. "12" or "(12-2)" - (and long left scope).

Re: Why don't lambda functions work inside defined functions?

<t7nojo$1kli$1@gioia.aioe.org>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=362&group=comp.lang.apl#362

  copy link   Newsgroups: comp.lang.apl
Path: i2pn2.org!i2pn.org!aioe.org!POhcInDjTLDxbB0ZzbN2dg.user.46.165.242.75.POSTED!not-for-mail
From: bsmith@sudleydeplacespam.com (Bob Smith)
Newsgroups: comp.lang.apl
Subject: Re: Why don't lambda functions work inside defined functions?
Date: Tue, 7 Jun 2022 10:50:30 -0400
Organization: Aioe.org NNTP Server
Message-ID: <t7nojo$1kli$1@gioia.aioe.org>
References: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>
<t7j9ls$9c4$1@dont-email.me>
<43e4afe3-e59f-4a67-8832-cc25e4595ea5n@googlegroups.com>
Reply-To: bsmith@desudleyspamplace.com
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="53938"; posting-host="POhcInDjTLDxbB0ZzbN2dg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: Bob Smith - Tue, 7 Jun 2022 14:50 UTC

On 6/6/2022 4:03 PM, Charles Brenner wrote:
> On Sunday, June 5, 2022 at 3:11:09 PM UTC-7, Rav wrote:
>> On 6/5/2022 4:08 PM, Brian McGuinness wrote:
>>> I have been experimenting with simple lambda functions to see how they work. But I ran into behavior that I don't understand, and I haven't found good documentation to explain what is going on.
>>>
>>> This works as expected:
>>>
>>> ({⍵,+/¯2↑⍵}⍣10) 0 1
>>> 0 1 1 2 3 5 8 13 21 34 55 89
>>>
>>> But this doesn't work:
>>>
>>> ∇
>>> [0] A←FIBONACCI N
>>> [1] A←({⍵,+/¯2↑⍵}⍣N-2) 0 1
>>> ∇
>>>
>>> FIBONACCI 12
>>> ¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1
>>>
>>> If I tried to do this using only normal defined functions I would have to use two separate functions, so it seems to me that using a lambda function should be a cleaner way to perform the operation. But I don't see how to make this work.
>>>
>>> --- Brian McGuinness
>> If I understand correctly, it doesn't look to me like doing the same
>> thing with a defined function is doing anything differently. In
>> immediate execution mode:
>>
>> ({⍵,+/¯2↑⍵}⍣12-2) 0 1
>> ¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1
>> But:
>>
>> ({⍵,+/¯2↑⍵}⍣(12-2)) 0 1
>> 0 1 1 2 3 5 8 13 21 34 55 89
>> I'm not familiar with the power function, but perhaps it's a precedence
>> issue, which the parentheses solves. So change your defined function to:
>>
>> ∇
>> [0] A←FIBONACCI N
>> [1] A←({⍵,+/¯2↑⍵}⍣(N-2)) 0 1
>> ∇
>>
>> / Rav
> Nice work. That solves the puzzle except for a small point of language. ⍣ is an operator hence, contrary to the rule for a function, it has short right scope - i.e. "12" or "(12-2)" - (and long left scope).

Charles is exactly right. Moreover, there is one difference in the way
dyadic operators work in APL2 and NARS2000 versus Dyalog with numeric
strand right operands. While they all implement short right scope, in
APL2 and NARS2000

f⍣1 2 3 ←→ (f⍣1) 2 3

whereas in Dyalog

f⍣1 2 3 ←→ f⍣(1 2 3)

One way to look at the difference is in the interpretation of 1 2 3 as
three tokens or a single token.

--
_________________________________________
Bob Smith -- bsmith@sudleydeplacespam.com
http://www.sudleyplace.com - http://www.nars2000.org

To reply to me directly, delete "despam".

Re: Why don't lambda functions work inside defined functions?

<90eba3ec-3bd1-47b8-9a60-bf9779423146n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=363&group=comp.lang.apl#363

  copy link   Newsgroups: comp.lang.apl
X-Received: by 2002:a05:622a:388:b0:304:e380:451d with SMTP id j8-20020a05622a038800b00304e380451dmr17420339qtx.265.1654627474202;
Tue, 07 Jun 2022 11:44:34 -0700 (PDT)
X-Received: by 2002:a81:9256:0:b0:30c:7143:f218 with SMTP id
j83-20020a819256000000b0030c7143f218mr33168031ywg.493.1654627474009; Tue, 07
Jun 2022 11:44:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.apl
Date: Tue, 7 Jun 2022 11:44:33 -0700 (PDT)
In-Reply-To: <t7nojo$1kli$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:643:8400:84f0:ada0:e49d:add1:e175;
posting-account=Xm2qywkAAACYHHbuiTr3jZAvmlcBOjgT
NNTP-Posting-Host: 2601:643:8400:84f0:ada0:e49d:add1:e175
References: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>
<t7j9ls$9c4$1@dont-email.me> <43e4afe3-e59f-4a67-8832-cc25e4595ea5n@googlegroups.com>
<t7nojo$1kli$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <90eba3ec-3bd1-47b8-9a60-bf9779423146n@googlegroups.com>
Subject: Re: Why don't lambda functions work inside defined functions?
From: challambrenner@gmail.com (Charles Brenner)
Injection-Date: Tue, 07 Jun 2022 18:44:34 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 5102
 by: Charles Brenner - Tue, 7 Jun 2022 18:44 UTC

On Tuesday, June 7, 2022 at 7:50:35 AM UTC-7, Bob Smith wrote:
> On 6/6/2022 4:03 PM, Charles Brenner wrote:
> > On Sunday, June 5, 2022 at 3:11:09 PM UTC-7, Rav wrote:
> >> On 6/5/2022 4:08 PM, Brian McGuinness wrote:
> >>> I have been experimenting with simple lambda functions to see how they work. But I ran into behavior that I don't understand, and I haven't found good documentation to explain what is going on.
> >>>
> >>> This works as expected:
> >>>
> >>> ({⍵,+/¯2↑⍵}⍣10) 0 1
> >>> 0 1 1 2 3 5 8 13 21 34 55 89
> >>>
> >>> But this doesn't work:
> >>>
> >>> ∇
> >>> [0] A←FIBONACCI N
> >>> [1] A←({⍵,+/¯2↑⍵}⍣N-2) 0 1
> >>> ∇
> >>>
> >>> FIBONACCI 12
> >>> ¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1
> >>>
> >>> If I tried to do this using only normal defined functions I would have to use two separate functions, so it seems to me that using a lambda function should be a cleaner way to perform the operation. But I don't see how to make this work.
> >>>
> >>> --- Brian McGuinness
> >> If I understand correctly, it doesn't look to me like doing the same
> >> thing with a defined function is doing anything differently. In
> >> immediate execution mode:
> >>
> >> ({⍵,+/¯2↑⍵}⍣12-2) 0 1
> >> ¯2 ¯2 ¯4 ¯6 ¯10 ¯16 ¯26 ¯42 ¯68 ¯110 ¯178 ¯288 ¯466 0 1
> >> But:
> >>
> >> ({⍵,+/¯2↑⍵}⍣(12-2)) 0 1
> >> 0 1 1 2 3 5 8 13 21 34 55 89
> >> I'm not familiar with the power function, but perhaps it's a precedence
> >> issue, which the parentheses solves. So change your defined function to:
> >>
> >> ∇
> >> [0] A←FIBONACCI N
> >> [1] A←({⍵,+/¯2↑⍵}⍣(N-2)) 0 1
> >> ∇
> >>
> >> / Rav
> > Nice work. That solves the puzzle except for a small point of language. ⍣ is an operator hence, contrary to the rule for a function, it has short right scope - i.e. "12" or "(12-2)" - (and long left scope).
> Charles is exactly right. Moreover, there is one difference in the way
> dyadic operators work in APL2 and NARS2000 versus Dyalog with numeric
> strand right operands. While they all implement short right scope, in
> APL2 and NARS2000
>
> f⍣1 2 3 ←→ (f⍣1) 2 3
>
> whereas in Dyalog
>
> f⍣1 2 3 ←→ f⍣(1 2 3)

Thanks Bob. That's good to know and I didn't.
Another situation where Morton chose to abandon APL2's parenthesis requirement is multiple assignment:
In APL2: (one another)←1 'ther'
Dyalog permits: one another←1 'ther'
Morton expressed remorse for this, and eventually I saw why. I often invoke the display utility function #.disp, i.e. disp (3 2⍴'a' 23 ('b' 'cd')). Sometimes when my program crashed while inside namespace #.ns, I would thoughtlessly write disp x←Function ⍳7, which usually works fine. But if Function returns a 2-element vector, uh oh!
So I began writing (xyz abc)← ..., and having thus violated my life-long habit of always omitting unnecessary punctuation in my APL code, the floodgates are getting shakey. Occasionally I now add extra parentheses for symmetry or a superfluous monadic ⊆ for clarity.

Re: Why don't lambda functions work inside defined functions?

<t7oi55$1dlb$1@gioia.aioe.org>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=364&group=comp.lang.apl#364

  copy link   Newsgroups: comp.lang.apl
Path: i2pn2.org!i2pn.org!aioe.org!POhcInDjTLDxbB0ZzbN2dg.user.46.165.242.75.POSTED!not-for-mail
From: bsmith@sudleydeplacespam.com (Bob Smith)
Newsgroups: comp.lang.apl
Subject: Re: Why don't lambda functions work inside defined functions?
Date: Tue, 7 Jun 2022 18:06:28 -0400
Organization: Aioe.org NNTP Server
Message-ID: <t7oi55$1dlb$1@gioia.aioe.org>
References: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>
<t7j9ls$9c4$1@dont-email.me>
<43e4afe3-e59f-4a67-8832-cc25e4595ea5n@googlegroups.com>
<t7nojo$1kli$1@gioia.aioe.org>
<90eba3ec-3bd1-47b8-9a60-bf9779423146n@googlegroups.com>
Reply-To: bsmith@desudleyspamplace.com
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="46763"; posting-host="POhcInDjTLDxbB0ZzbN2dg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-US
 by: Bob Smith - Tue, 7 Jun 2022 22:06 UTC

On 6/7/2022 2:44 PM, Charles Brenner wrote:
[..]
> Thanks Bob. That's good to know and I didn't.
> Another situation where Morton chose to abandon APL2's parenthesis requirement is multiple assignment:
> In APL2: (one another)←1 'ther'
> Dyalog permits: one another←1 'ther'
> Morton expressed remorse for this, and eventually I saw why. I often invoke the display utility function #.disp, i.e. disp (3 2⍴'a' 23 ('b' 'cd')). Sometimes when my program crashed while inside namespace #.ns, I would thoughtlessly write disp x←Function ⍳7, which usually works fine. But if Function returns a 2-element vector, uh oh!
> So I began writing (xyz abc)← ..., and having thus violated my life-long habit of always omitting unnecessary punctuation in my APL code, the floodgates are getting shakey. Occasionally I now add extra parentheses for symmetry or a superfluous monadic ⊆ for clarity.

Yes, I agree completely with the need for surrounding parens in
selective specifications. Principally, I want it for ease of parsing
the line visually. Fortunately for you, Dyalog APL disallows the
re-assignment of a variable to the name of an existing function, so disp
won't be changed.

Parens are already required in some instances of SelSpec, such as
distinguishing between

1 1⍉a ←b and
(1 1⍉a)←b

which says to me that they should be required in every case of SelSpec.

Also, in Dyalog APL you might be required to insert parens in an unusual
place: around the *rightmost* part of a statement, such as

a←1 ⋄ a b←'ab' ⋄ a b
ab
a←1 ⋄ a (b←'ab')
1 ab

--
_________________________________________
Bob Smith -- bsmith@sudleydeplacespam.com
http://www.sudleyplace.com - http://www.nars2000.org

To reply to me directly, delete "despam".

Re: Why don't lambda functions work inside defined functions?

<d15fd3eb-84cb-449e-96e6-fff0c867412dn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=365&group=comp.lang.apl#365

  copy link   Newsgroups: comp.lang.apl
X-Received: by 2002:a37:343:0:b0:6a6:7895:8eaf with SMTP id 64-20020a370343000000b006a678958eafmr20658419qkd.493.1654642427962;
Tue, 07 Jun 2022 15:53:47 -0700 (PDT)
X-Received: by 2002:a25:2a54:0:b0:663:7273:ad86 with SMTP id
q81-20020a252a54000000b006637273ad86mr14421900ybq.551.1654642427770; Tue, 07
Jun 2022 15:53:47 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.apl
Date: Tue, 7 Jun 2022 15:53:47 -0700 (PDT)
In-Reply-To: <t7oi55$1dlb$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=71.172.143.51; posting-account=h3IwYwoAAAAeE2lWQnRSCqcQ0dO-KDvQ
NNTP-Posting-Host: 71.172.143.51
References: <04173bd7-fbd6-47a6-ae2d-249d225f7a9an@googlegroups.com>
<t7j9ls$9c4$1@dont-email.me> <43e4afe3-e59f-4a67-8832-cc25e4595ea5n@googlegroups.com>
<t7nojo$1kli$1@gioia.aioe.org> <90eba3ec-3bd1-47b8-9a60-bf9779423146n@googlegroups.com>
<t7oi55$1dlb$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d15fd3eb-84cb-449e-96e6-fff0c867412dn@googlegroups.com>
Subject: Re: Why don't lambda functions work inside defined functions?
From: b.mcguinness747@gmail.com (Brian McGuinness)
Injection-Date: Tue, 07 Jun 2022 22:53:47 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1403
 by: Brian McGuinness - Tue, 7 Jun 2022 22:53 UTC

Thanks, now I see what's going on.

--- Brian McGuinness

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor