Blob


1 (define (non-num-members as)
2 (filter (lambda (x) (not (number? x))) as))
3 (define (num-members as)
4 (filter number? as))
5 (define (more-than-one-number? as)
6 (let ((nums (num-members as)))
7 (if (or (null? nums) (null? (cdr nums)))
8 #f
9 #t)))
10 (define (zero-is-the-only-number? as)
11 (let ((nums (num-members as)))
12 (if (null? nums)
13 #f
14 (and (= (car nums) 0) (null? (cdr nums))))))
15 (define (one-is-the-only-number? as)
16 (let ((nums (num-members as)))
17 (if (null? nums)
18 #f
19 (and (= (car nums) 1) (null? (cdr nums))))))
20 (define (insert-signs result items sign)
21 (cond ((null? items) result)
22 ((null? result)
23 (insert-signs (list (car items)) (cdr items) sign))
24 (else (insert-signs (append result (list sign (car items)))
25 (cdr items) sign))))