(define num-digits (lambda (n) (if (< n 10) 1 (+ 1 (num-digits (quotient n 10))))))
Q: How to make it work on negative integers?
A: Return result of calling on (- n)
(define num-digits
(lambda (n)
(if (< n 0)
(num-digits (- n))
(if (< n 10)
1
(+ 1
(num-digits (quotient n 10)]