Outer Product

, or Table is a monadic operator, which will produce a dyadic function when applied with a dyadic function. In short, outer product allows you to apply a given function on each element of the left array with each element of the right array. Basically, a shortcut for constructing nested for loops.

Syntax
By right, a monadic operator should be a single glyph, and the operand should be on the left. However, for historical reasons, the outer product operator is not only a bi-glyph denoted as, the operand also appears on the right instead.

Notably, this syntactical inconsistency is resolved in J and BQN, where the outer product operator, called Table, and denoted  and   respectively, abide by the usual operator syntax.

Applications
Outer product is useful for solving problems that intuitively requires a polynomial time algorithm. However, this also indicates that such an algorithm might not be the fastest solution.

For example, suppose we want to find duplicated elements in an non-nested array. Intuitively speaking, the easiest way to solve this problem is to compare each element of the array with all other elements, which is exactly what an outer product does. Using similar techniques, we can define a function that generates prime numbers by using an outer product of Residue. Again, using outer product might not yield the fastest solution. There are faster solutions such as Sieve of Eratosthenes.

Documentation

 * Dyalog
 * APLX
 * J Dictionary, NuVoc