bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Reassignment of a nested array element


From: Hans-Peter Sorge
Subject: Re: Reassignment of a nested array element
Date: Sun, 5 Mar 2023 19:13:28 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0

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.


    


reply via email to

[Prev in Thread] Current Thread [Next in Thread]