1 665c255d 2023-08-04 jrmu (defun make-sum (&rest nums)
2 665c255d 2023-08-04 jrmu (append (list '+) nums))
4 665c255d 2023-08-04 jrmu (make-sum '())
6 665c255d 2023-08-04 jrmu (make-sum '(3))
8 665c255d 2023-08-04 jrmu (make-sum '(3 4))
10 665c255d 2023-08-04 jrmu (make-sum '(3 4 5))
12 665c255d 2023-08-04 jrmu (defun sum? (x)
13 665c255d 2023-08-04 jrmu (and (consp x) (eql (car x) '+)))
14 665c255d 2023-08-04 jrmu (defun addend (s)
16 665c255d 2023-08-04 jrmu (defun augend (s)
17 665c255d 2023-08-04 jrmu (let ((aug (cddr s)))
18 665c255d 2023-08-04 jrmu (if (= (length aug) 1)
20 665c255d 2023-08-04 jrmu (append (list '+) aug))))
21 665c255d 2023-08-04 jrmu (defun make-product (&rest nums)
22 665c255d 2023-08-04 jrmu (append (list '*) nums))
23 665c255d 2023-08-04 jrmu (defun product? (x)
24 665c255d 2023-08-04 jrmu (and (consp x) (eql (car x) '*)))
25 665c255d 2023-08-04 jrmu (defun multiplier (s)
27 665c255d 2023-08-04 jrmu (defun multiplicand (s)
28 665c255d 2023-08-04 jrmu (let ((m (cddr s)))
29 665c255d 2023-08-04 jrmu (if (= (length m) 1)
31 665c255d 2023-08-04 jrmu (append (list '*) m))))