12 lines
340 B
Text
12 lines
340 B
Text
(define dsum (lambda (x base)
|
|
(let ((number (if (string? x) (string->number x base) x)))
|
|
(if (= (string-length (number->string number)) 1) number
|
|
(+ (mod number base) (dsum (div number base) base))))))
|
|
> (dsum 123 10)
|
|
6
|
|
> (dsum "fe" 16)
|
|
29
|
|
> (dsum "f0e" 16)
|
|
29
|
|
> (dsum 1234 10)
|
|
10
|