Power (operator)

is a primitive dyadic operator that performs bounded looping, unbounded looping, and function inverses in NARS2000, Dyalog APL, and related implementations like ngn/apl, dzaima/APL, and Extended Dyalog APL.

Description
A call to Power is of the form, where
 * is an optional argument.
 * is a function. If  is given, then it is bound to    so   is equivalent to.
 * can be an array or a function.

Power repeatedly applies  to   based on the type of operand  :
 * Function: Must be dyadic and must return a boolean singleton. The previous iteration value is provided as the right argument to, and the current iteration value is given as the left argument.   is repeatedly applied until this function returns 1.
 * Integer: Applies    times to  . If   is negative, then the inverse of   (if available) is applied.
 * Integer Array: In Extended Dyalog APL,  can be an integer array. Each integer   in   will be replaced by.

Examples
Some basic examples: A well-known use for Power is iterating until a fixed point is reached. Power is also used to access function inverses.

Lessons

 * APL Cultivation: 3, 34, 35, 49

Documentation

 * Dyalog
 * J Dictionary, NuVoc
 * BQN