Next: , Previous: , Up: k9: Manual  


10 Knit Functions

These functions modify lists and dictionaries given a list of indices and functions or values to replace.

@[r;i;f[;y]] amend
.[r;i;f[;y]] dmend

10.1 amend ⇒ @[r;i;f[;y]]

Replace the values in list / dictionary r at indices i with element f or function f and parameter y. The original list is not modified. Indices are rows for lists and keys for dictionaries.

actionfy
amend with elementelementn/a
amend with element/array:element/list
amend with function 1 paramfunctionn/a
amend with function 2 paramfunction2nd param

Amend to element.

 r:(0 1;2 3;4 5;6);r
0 1
2 3
4 5
6  

 @[r;0 3;29]      / change the first and fourth rows
29 
2 3
4 5
29 

 r               / r doesn't change
0 1
2 3
4 5
6  

Amend with element/array. If using an array, then the i and y must be arrays of equal length.

 r:(0 1;2 3;4 5;6);r
0 1
2 3
4 5
6  

 @[r;1 2;:;(0;3 5)]
0 1
0  
3 5
6  

Amend with function f[r] at indices i.

 r:(0 1;2 3;4 5;6);r
0 1
2 3
4 5
6  

 @[r;1 2;sqrt]
0 1              
1.414214 1.732051
2.0 2.236068     
6

 d:[x:`a`b`c;y:9 4 1];d / dictionary example
x|`a`b`c
y|9 4 1 

 @[d;`y;sqrt]
x|`a`b`c
y|3 2 1.

Amend with function f[r;y] at indices i.

 r:(0 1;2 3;4 5;6);r
0 1
2 3
4 5
6  

 @[r;1 2;*;10 100]
0 1    
20 30  
400 500
6      

 d:[x:`a`b`c;y:9 4 1];d / dictionary
x|`a`b`c
y|9 4 1 

 @[d;`y;*;10]
x|`a`b`c  
y|90 40 10

10.2 dmend ⇒ .[r;i;f[;y]]

Similar to amend but using i to fully index r.

actionfy
dmend with elementelementn/a
dmend with function 1 paramfunctionn/a
dmend with function 2 paramfunction2nd param

Dmend to element.

 r:(0 1;2 3;4 5;6);r
0 1
2 3
4 5
6  

 .[r;0 1;12]       / modify the entry at [0;1]
0 12
2 3 
4 5 
6   

Dmend with function f[r] at indices i.

 r:(0 1;2 3;4 5;6);r
0 1
2 3
4 5
6  

 .[r;1 1;sqrt]
0 1         
2.0 1.732051
4 5         
6           

Dmend with function f[r;y] at indices i.

 r:(0 1;2 3;4 5;6);r
0 1
2 3
4 5
6  

 .[r;1 1;+;100]
0 1  
2 103
4 5  
6    

Next: I/O and Interface, Previous: Named Functions, Up: k9: Manual