Strand Assignment
From NARS2000
Jump to navigationJump to search


A_{1} A_{2} ... A_{n} are assignable names, R is a scalar or vector.  
If 1<⍴⍴R, signal a RANK ERROR.  
If R is a scalar or one element vector, its item is assigned to each name, as in A_{i}←⊃⍬⍴R.  
Otherwise, assume there are n names in the list:  
If n≠⍴R, signal a LENGTH ERROR.  
Otherwise, each successive item of R is assigned to each successive name, as in A_{i}←i⊃R. 
For example, (A B C)←⊂⍳3 is shorthand for A←B←C←⍳3. In contrast, (A B C)←⍳3 is shorthand for A←1 ⋄ B←2 ⋄ C←3.
Note that (A B)←B A is a simple and efficient way to swap the values of the two names.