Blame


1 665c255d 2023-08-04 jrmu (defun make-sum (&rest nums)
2 665c255d 2023-08-04 jrmu (append (list '+) nums))
3 665c255d 2023-08-04 jrmu
4 665c255d 2023-08-04 jrmu (make-sum '())
5 665c255d 2023-08-04 jrmu '(+)
6 665c255d 2023-08-04 jrmu (make-sum '(3))
7 665c255d 2023-08-04 jrmu '(+ 3)
8 665c255d 2023-08-04 jrmu (make-sum '(3 4))
9 665c255d 2023-08-04 jrmu '(+ 3 4)
10 665c255d 2023-08-04 jrmu (make-sum '(3 4 5))
11 665c255d 2023-08-04 jrmu '(+ 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)
15 665c255d 2023-08-04 jrmu (cadr 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)
19 665c255d 2023-08-04 jrmu (car aug)
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)
26 665c255d 2023-08-04 jrmu (cadr 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)
30 665c255d 2023-08-04 jrmu (car m)
31 665c255d 2023-08-04 jrmu (append (list '*) m))))