A set of program units which call each other. For example, function A calls function B, which then recursively calls A again, and so on (until, hopefully, a base case is reached). This technique is called mutual recursion.

An example might make the concept more clear. The canonical example of mutually recursive functions is even? and odd?. Here they are, in Scheme:

(define even?
  (lambda (n)
    (if (zero? n)
        #t
        (odd? (- n 1)))))

(define odd?
  (lambda (n)
    (if (zero? n)
        #f
        (even? (- n 1)))))

Log in or register to write something here or to contact authors.