Modify Strand Assignment: Difference between revisions

From NARS2000
Jump to navigationJump to search
(New page: <table border="1" cellpadding="5" cellspacing="0" rules="none" summary=""> <tr> <td> <table border="0" cellpadding="5" cellspacing="0" summary=""> <tr> <td><apl size="large...)
 
No edit summary
Line 34: Line 34:
<br />
<br />
<br />
<br />
For example, <apl size="large">(A B C){rho}{is}{enclose}{iota}3</apl> is shorthand for <apl size="large">A{is}A{rho}{iota}3 {diamond} B{is}B{rho}{iota}3 {diamond} C{is}C{rho}{iota}3</apl>.  In contrast, <apl size="large">(A B C){rho}{is}{iota}3</apl> is shorthand for <apl size="large">A{is}A{rho}1 {diamond} B{is}B{rho}2 {diamond} C{is}C{rho}3</apl>. Also, <apl size="large">(A B C),{is}(1 2) 'abc' 1.1</apl> is shorthand for <apl size="large">A{is}A,1 2 {diamond} B{is}B,'abc' {diamond} C{is}C,1.1</apl>.
For example, <apl size="large">(A B C){rho}{is}{enclose}{iota}3</apl> is shorthand for <apl size="large">A{is}A{rho}{iota}3 {diamond} B{is}B{rho}{iota}3 {diamond} C{is}C{rho}{iota}3</apl>.  In contrast, <apl size="large">(A B C){rho}{is}{iota}3</apl> is shorthand for <apl size="large">A{is}A{rho}1 {diamond} B{is}B{rho}2 {diamond} C{is}C{rho}3</apl>.

Revision as of 14:22, 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.