Modify Strand Assignment: Difference between revisions

From NARS2000
Jump to navigationJump to search
No edit summary
No edit summary
Line 4: Line 4:
     <table border="0" cellpadding="5" cellspacing="0" summary="">
     <table border="0" cellpadding="5" cellspacing="0" summary="">
     <tr>
     <tr>
       <td><apl size="large"> (A<sub>1</sub> A<sub>2</sub> ... A<sub>n</sub>)<i>fn</i>←R</apl></td>
       <td><apll> (A<sub>1</sub> A<sub>2</sub> ... A<sub>n</sub>)<i>fn</i>←R</apll></td>
       <td></td>
       <td></td>
       <td></td>
       <td></td>
       <td>In general, assigns <apl size="large">A<sub>i</sub>←A<sub>i</sub><i>fn</i> i⊃R</apl>. </td>
       <td>In general, assigns <apll>A<sub>i</sub>←A<sub>i</sub><i>fn</i> i⊃R</apll>. </td>
     </tr>
     </tr>
     </table>
     </table>
Line 13: Line 13:
</tr>
</tr>
<tr>
<tr>
   <td><apl size="large">A<sub>1</sub> A<sub>2</sub> ... A<sub>n</sub></apl> are all names with existing values, <apl size="large">R</apl> is a scalar or vector.
   <td><apll>A<sub>1</sub> A<sub>2</sub> ... A<sub>n</sub></apll> are all names with existing values, <apll>R</apll> is a scalar or vector.
   </td>
   </td>
</tr>
</tr>
<tr>
<tr>
   <td>If <apl size="large">1&lt;⍴⍴R</apl>, signal a <apl size="large">RANK ERROR</apl>.</td>
   <td>If <apll>1&lt;⍴⍴R</apll>, signal a <apll>RANK ERROR</apll>.</td>
</tr>
</tr>
<tr>
<tr>
   <td>If <apl size="large">R</apl> is a scalar or one element vector, its item, in combination with the value of each name, is assigned to each name, as in <apl size="large">A<sub>i</sub>{is}A<sub>i</sub><i>fn</i> ⊃⍬⍴R</apl>.</td>
   <td>If <apll>R</apll> is a scalar or one element vector, its item, in combination with the value of each name, is assigned to each name, as in <apll>A<sub>i</sub>{is}A<sub>i</sub><i>fn</i> ⊃⍬⍴R</apll>.</td>
</tr>
</tr>
<tr>
<tr>
   <td>Otherwise, assume there are <apl size="large">n</apl> names in the list:</td>
   <td>Otherwise, assume there are <apll>n</apll> names in the list:</td>
</tr>
</tr>
<tr>
<tr>
   <td>If <apl size="large">n≠⍴R</apl>, signal a <apl size="large">LENGTH ERROR</apl>.</td>
   <td>If <apll>n≠⍴R</apll>, signal a <apll>LENGTH ERROR</apll>.</td>
</tr>
</tr>
<tr>
<tr>
   <td>Otherwise, each successive item of <apl size="large">R</apl>, in combination with the value of each successive name, is assigned to each successive name, as in <apl size="large">A<sub>i</sub>←A<sub>i</sub><i>fn</i> i⊃R</apl>.</td>
   <td>Otherwise, each successive item of <apll>R</apll>, in combination with the value of each successive name, is assigned to each successive name, as in <apll>A<sub>i</sub>←A<sub>i</sub><i>fn</i> i⊃R</apll>.</td>
</tr>
</tr>
</table>
</table>
<br />
<br />
<br />
<br />
For example, <apl size="large">(A B C)⍴←⊂⍳3</apl> is shorthand for <apl size="large">A←A⍴⍳3 ⋄ B←B⍴⍳3 ⋄ C←C⍴⍳3</apl>.  In contrast, <apl size="large">(A B C)⍴←⍳3</apl> is shorthand for <apl size="large">A←A⍴1 ⋄ B←B⍴2 ⋄ C←C⍴3</apl>.
For example, <apll>(A B C)⍴←⊂⍳3</apll> is shorthand for <apll>A←A⍴⍳3 ⋄ B←B⍴⍳3 ⋄ C←C⍴⍳3</apll>.  In contrast, <apll>(A B C)⍴←⍳3</apll> is shorthand for <apll>A←A⍴1 ⋄ B←B⍴2 ⋄ C←C⍴3</apll>.

Revision as of 22:36, 9 April 2008

(A1 A2 ... An)fn←R In general, assigns Ai←Aifn i⊃R.
A1 A2 ... An are all names with existing values, R is a scalar or vector.
If 1<⍴⍴R, signal a RANK ERROR.
If R is a scalar or one element vector, its item, in combination with the value of each name, is assigned to each name, as in Ai←Aifn ⊃⍬⍴R.
Otherwise, assume there are n names in the list:
If n≠⍴R, signal a LENGTH ERROR.
Otherwise, each successive item of R, in combination with the value of each successive name, is assigned to each successive name, as in Ai←Aifn i⊃R.



For example, (A B C)⍴←⊂⍳3 is shorthand for A←A⍴⍳3 ⋄ B←B⍴⍳3 ⋄ C←C⍴⍳3. In contrast, (A B C)⍴←⍳3 is shorthand for A←A⍴1 ⋄ B←B⍴2 ⋄ C←C⍴3.