aboutsummaryrefslogtreecommitdiff
path: root/challenge-261/deadmarshal/scheme/ch1.scm
blob: b2821c616dd9a7b3ea7b2f5efe3287d1b196a506 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(define (number->list num)
  (let loop ((num num)
	     (acc '()))
    (if (< num 10)
	(cons num acc)
	(loop (quotient num 10)
	      (cons (remainder num 10) acc)))))

(define (flatten xs)
  (cond ((null? xs) '())
	((pair? xs) (append (flatten (car xs)) (flatten (cdr xs))))
	(else (list xs))))

(define (element-digit-sum list)
  (abs (- (apply + (flatten (map number->list list)))
	  (apply + list))))

(begin
  (display (element-digit-sum '(1 2 3 45))) (newline)
  (display (element-digit-sum '(1 12 3))) (newline)
  (display (element-digit-sum '(1 2 3 4))) (newline)
  (display (element-digit-sum '(236 416 336 350))) (newline))