recursion
Java
Recursion results from a method being invoked when an existing call to the same method has not yet returned. For instance
public static void countDown(int n){ if(n >= 0){ System.out.println(n); countDown(n-1); } // else - base case. End of recursion. } See direct recursion, indirect recursion and mutual recursion for the different forms this can take.Perl
The art of defining something (at least partly) in terms of itself, which is a naughty no-no in dictionaries but often works out okay in computer programs if you're careful not to recurse forever, which is like an infinite loop with more spectacular failure modes.