It has often been said that a person does not really understand something until he teaches it to someone else. Actually, a person does not really understand something until he can teach it to a computer, i.e., express it as an algorithm. The attempt to formalize things as algorithms leads to much deeper understanding than if we simply try to comprehend things in the traditional way.—Donald E. Knuth (1974 Turing Award1 winner) “Computer Science and Its Relation to Mathematics,” American Mathematical Monthly, Vol. 81, April, 1974, page 327.
Below, the recursive function ...