Deep amend: Difference between revisions

From The K Language Wiki
Content added Content deleted
No edit summary
No edit summary
Line 6: Line 6:
* <code>x</code> is an array to amend
* <code>x</code> is an array to amend
* <code>y</code> is the index route to amend
* <code>y</code> is the index route to amend
* <code>z</code>(optional), is the function to apply to those indices
* <code>z</code> is the function to apply to those indices
* <code>u</code> is the second argument to <code>z</code>
* <code>u</code> (optional), is the second argument to <code>z</code>


It is very similar to [[Amend]] in its functionality. The main difference is that <code>y</code> when given an array indexes into subarrays when used.
It is very similar to [[Amend]] in its functionality. The main difference is that <code>y</code> when given an array indexes into subarrays when used.

<pre> .[3 3#!9;1 1;-:]
0 1 2
3 -4 5
6 7 8</pre>


== ngn/k ==
== ngn/k ==

Revision as of 08:42, 20 January 2022

Deep amend
.[x;y[;f];z]

Deep Amend, also known as dmend or drill is a deep version of Amend which allows modification of elements which are nested deep inside an array.

Deep Amend takes 3 or 4 arguments, where:

  • x is an array to amend
  • y is the index route to amend
  • z is the function to apply to those indices
  • u (optional), is the second argument to z

It is very similar to Amend in its functionality. The main difference is that y when given an array indexes into subarrays when used.

 .[3 3#!9;1 1;-:]
0 1 2
3 -4 5
6 7 8

ngn/k

ngn/k's amend has z as the optional argument, instead of having f as an optional argument.