Case

, or Merge, is a dyadic primitive function in Kap and dzaima/APL that forms an array by mixing elements taken from a vector of arrays according to an array of indices. It's closely related to the J adverb (monadic operator) Composite Item, which differs in that the right argument is an array whose major cells are mixed together. It can also be considered a generalization of a blend instruction in SIMD programming, which chooses between two arguments based on a boolean mask, an operation that might be written  in APL.

The following example shows how Case may be used to mix three vectors together:

The right argument is a vector of arrays all of the same shape, and the left argument is a simple numeric array with the same shape as each element of the right argument as well as the result. The result value at a given position is taken from the same position in the 'th right argument array, where   is the index at that position in the left argument.

Documentation

 * Kap
 * J NuVoc, Dictionary