A procedure or function which calls itself either directly or indirectly (A calls B which calls A, etc.)
integer function factorial(integer n); begin if n=0 then factorial 1 else factorial factorial(n-1)*n; end;