Hi,
Yes, spontaneously it looked like selective assignment
Like
CM← ⊃'Sue' 'Maria' 'Annalisa'
CM
Sue
Maria
Annalisa
(1/CM)← ⊂'xxxxx'
CM
xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx
xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx
xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx
CM← ⊃'Sue' 'Maria' 'Annalisa'
((,CM=' ')/,CM)←⊂'SPACE'
CM
Sue SPACE SPACE SPACE SPACE SPACE
Mar i a SPACE SPACE SPACE
Ann a l i s a
CM← ⊃'Sue' 'Maria' 'Annalisa'
((,CM=' ')/,CM)← (⊂'SPACE'),¨ ⍳+/,CM=' '
CM
Sue SPACE 1 SPACE 2 SPACE 3 SPACE 4 SPACE 5
Mar i a SPACE 6 SPACE 7 SPACE 8
Ann a l i s a
What ever selected elements are on the left side, those "positions" get
assigned the right element(s) assigned.
Glad it works this way.
As about Dyalog, I'm puzzled. The Project I'm working on runs under
Dyalog and I make heavy use of this pattern.
I have to try tomorrow.
PS. by Element I mean
0 ←→ ⍴⍴ Element ... where Element is of any depth the system allows
Greetings
Hans-Peter
Am 05.03.23 um 18:04 schrieb Mr. Sunday:
Thank you for your reply, Hans-Peter. Sorry for the delay; it took some time
to dig out my old interpreters. APL2, APL+Win, and Dyalog come up with the
answer I expect. I do not see why reassignment would retain the structure of
the prior contents. Is your point of view based upon selective assignment?
Inserting a comma in the left hand side gives the result you expect:
(,3⊃var)←⊂⊃'Susan' 'Mary' 'Annalisa'.
IBM APL2 2.0 Service Level 14
var←0 0 0 ⋄ (1⊃var)←5 4 ⋄ (2⊃var)←3 4⍴⍳12 ⋄ (3⊃var)←⊃'Sue' 'Maria' 'Annalisa'
⋄ var ⋄ (3⊃var)←⊂⊃'Susan' 'Mary' 'Annalisa' ⋄ var
5 4 1 2 3 4 Sue
5 6 7 8 Maria
9 10 11 12 Annalisa
5 4 1 2 3 4 Susan
5 6 7 8 Mary
9 10 11 12 Annalisa
Dyalog 18.2.45505
⎕ml←3 ⋄ ⎕io←1 ⋄ var←0 0 0 ⋄ (1⊃var)←5 4 ⋄ (2⊃var)←3 4⍴⍳12 ⋄ (3⊃var)←⊃'Sue'
'Maria' 'Annalisa' ⋄ var ⋄ (3⊃var)←⊂⊃'Susan' 'Mary' 'Annalisa' ⋄ var
5 4 1 2 3 4 Sue
5 6 7 8 Maria
9 10 11 12 Annalisa
5 4 1 2 3 4 Susan
5 6 7 8 Mary
9 10 11 12 Annalisa
APL+Win 4.0
var←0 0 0 ⋄ (1⊃var)←5 4 ⋄ (2⊃var)←3 4⍴⍳12 ⋄ (3⊃var)←⊃'Sue' 'Maria' 'Annalisa'
⋄ var ⋄ (3⊃var)←⊂⊃'Susan' 'Mary' 'Annalisa' ⋄ var
5 4 1 2 3 4 Sue
5 6 7 8 Maria
9 10 11 12 Annalisa
5 4 1 2 3 4 Susan
5 6 7 8 Mary
9 10 11 12 Annalisa
On Sat, Mar 4, 2023, at 14:25, Hans-Peter Sorge wrote:
Hi,
Works as expected
⊃'Sue' 'Maria' 'Annalisa'
is an array 3 by 8.
⊂⊃'Susan' 'Mary' 'Annalisa'
is an element (⊂) of a 3 by 8 array (⊃'Susan' 'Mary' 'Annalisa' ).
Finally each element in ⊃'Sue' 'Maria' 'Annalisa' gets assigned an
array of ⊃'Susan' 'Mary' 'Annalisa'
Greetings
Hans-Peter
Am 04.03.23 um 16:53 schrieb Mr. Sunday:
Hi,
I have an issue with reassigning an element of a nested array. Here is an
example.
14535:15a:~% apl --version
BUILDTAG:
---------
Project: GNU APL
Version / SVN: 1.8 / SVN: 1651M
Build Date: 2023-03-02 00:25:07 UTC
Build OS: Darwin 21.6.0 x86_64
config.status: default ./configure options
Archive SVN: 1621
var←0 0 0 ⋄ (1⊃var)←5 4 ⋄ (2⊃var)←3 4⍴⍳12 ⋄ (3⊃var)←⊃'Sue' 'Maria'
'Annalisa' ⋄ var ⋄ (3⊃var)←⊂⊃'Susan' 'Mary' 'Annalisa' ⋄ var
┌→────────────────────────────┐
│┌→──┐ ┌→─────────┐ ┌→───────┐│
││5 4│ ↓1 2 3 4│ ↓Sue ││
│└───┘ │5 6 7 8│ │Maria ││
│ │9 10 11 12│ │Annalisa││
│ └──────────┘ └────────┘│
└ϵ────────────────────────────┘
┌→───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│┌→──┐ ┌→─────────┐
┌→──────────────────────────────────────────────────────────────────────────────────────┐│
││5 4│ ↓1 2 3 4│ ↓┌→───────┐ ┌→───────┐ ┌→───────┐ ┌→───────┐ ┌→───────┐
┌→───────┐ ┌→───────┐ ┌→───────┐││
│└───┘ │5 6 7 8│ │↓Susan │ ↓Susan │ ↓Susan │ ↓Susan │ ↓Susan │
↓Susan │ ↓Susan │ ↓Susan │││
│ │9 10 11 12│ ││Mary │ │Mary │ │Mary │ │Mary │ │Mary │
│Mary │ │Mary │ │Mary │││
│ └──────────┘ ││Annalisa│ │Annalisa│ │Annalisa│ │Annalisa│ │Annalisa│
│Annalisa│ │Annalisa│ │Annalisa│││
│ │└────────┘ └────────┘ └────────┘ └────────┘ └────────┘
└────────┘ └────────┘ └────────┘││
│ │
││
│ │┌→───────┐ ┌→───────┐ ┌→───────┐ ┌→───────┐ ┌→───────┐
┌→───────┐ ┌→───────┐ ┌→───────┐││
│ │↓Susan │ ↓Susan │ ↓Susan │ ↓Susan │ ↓Susan │
↓Susan │ ↓Susan │ ↓Susan │││
│ ││Mary │ │Mary │ │Mary │ │Mary │ │Mary │
│Mary │ │Mary │ │Mary │││
│ ││Annalisa│ │Annalisa│ │Annalisa│ │Annalisa│ │Annalisa│
│Annalisa│ │Annalisa│ │Annalisa│││
│ │└────────┘ └────────┘ └────────┘ └────────┘ └────────┘
└────────┘ └────────┘ └────────┘││
│ │
││
│ │┌→───────┐ ┌→───────┐ ┌→───────┐ ┌→───────┐ ┌→───────┐
┌→───────┐ ┌→───────┐ ┌→───────┐││
│ │↓Susan │ ↓Susan │ ↓Susan │ ↓Susan │ ↓Susan │
↓Susan │ ↓Susan │ ↓Susan │││
│ ││Mary │ │Mary │ │Mary │ │Mary │ │Mary │
│Mary │ │Mary │ │Mary │││
│ ││Annalisa│ │Annalisa│ │Annalisa│ │Annalisa│ │Annalisa│
│Annalisa│ │Annalisa│ │Annalisa│││
│ │└────────┘ └────────┘ └────────┘ └────────┘ └────────┘
└────────┘ └────────┘ └────────┘││
│
└ϵ──────────────────────────────────────────────────────────────────────────────────────┘│
└ϵϵ──────────────────────────────────────────────────────────────────────────────────────────────────────────┘
-- Everyday is Sunday.