假设我有一个数组
是否有一种方法可以在扫描中保留原始值并进行乘法计算,或者有更好的方法?
N ← 0 0 0 1 1 1 0 0 1
,如何使用扫描符号\
来得到数组0 0 0 1 2 3 0 0 1
?
+\N
给了我0 0 0 1 2 3 3 3 4
,这不是我想要的。
+\¨⊆⍨N
给了我| 1 2 3 | 1 |
,更接近目标,但我失去了原始位置信息。是否有一种方法可以在扫描中保留原始值并进行乘法计算,或者有更好的方法?
{+⍀⍵-⍺⍀¯2-⌿0⍪⍺⌿+⍀¯1↓0⍪⍵}
的改编为{+\⍵-a\¯2-/0,(a←1,2≠/⍵)/+\¯1↓0,⍵}
过于复杂,因为{+⍀⍵-n⍀¯2-⌿0⍪(n←~⍵)⌿+⍀¯1↓0⍪⍵}
就可以了。 - Adám