When a function (or procedure) calls ITself. Such a function is called "recursive". If the call is via one or more other functions then this group of functions are called "mutually recursive". If a function will always call ITself, however IT is called, then IT will never terminate. Usually however, IT first performs some test on ITs arguments to check for a "base case" - a condITion under which IT can return a value wIThout calling ITself. The canonical example of a recursive function is factorial: factorial 0 = 1 factorial n = n * factorial (n-1) Functional programming languages rely heavily on recursion, using IT where a procedural language would use ITeration. See also recursion, recursive definITion, tail recursion. [Jargon File] (1996-05-11)