;; Return the nth harmonic number (define harm (lambda (n) (if (= n 1) 1 (+ (/ 1 n) (harm (- n 1)))))) ;; Return m*n, whre m is a number ;; and n is a nonnegative integer (define mult (lambda (m n) (if (= n 0) 0 (+ m (mult m (- n 1)))))) ;; Return "n choose k" for nonnegative integer n ;; and integer k such that 0 <= k <= n (define binom (lambda (n k) (if (or (= k 0) (= k n)) 1 (+ (binom (- n 1) k) (binom (- n 1) (- k 1)))))) ;; Count the number of 6's in the decimal representation ;; of nonnegative number n (define number-of-6s (lambda (n) (if (= n 0) 0 (+ (if (= (remainder n 10) 6) 1 0) (number-of-6s (quotient n 10)))))) ;; Russian Multiplication ;; Return m*n, whre m is a number ;; and n is a nonnegative integer (define r-mult (lambda (m n) (if (= n 0) 0 (+ (r-mult (+ m m) (quotient n 2)) (if (odd? n) m 0))))) ;; Return sum of digits in the decimal representation of a ;; nonnegative integer n (define sum-of-digits (lambda (n) (if (= n 0) 0 (+ (sum-of-digits (quotient n 10)) (remainder n 10)))))