diff options
author | Darren Bane <darren.bane@gmail.com> | 2021-02-03 00:00:50 +0000 |
---|---|---|
committer | Darren Bane <darren.bane@gmail.com> | 2021-02-03 00:00:50 +0000 |
commit | dbb7e6694c351ea0bd78d8405e5fe852f6de04b2 (patch) | |
tree | 942623117da0e15ddfa8191e5a0c9fb042c4c698 /dbc2.lsp | |
parent | 6498dfe047b90ac719b9a41d644d9e72ffaa11a4 (diff) | |
download | lsp-dbb7e6694c351ea0bd78d8405e5fe852f6de04b2.tar.gz |
ISLisp changes
Diffstat (limited to 'dbc2.lsp')
-rw-r--r-- | dbc2.lsp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/dbc2.lsp b/dbc2.lsp new file mode 100644 index 0000000..477dc38 --- /dev/null +++ b/dbc2.lsp @@ -0,0 +1,23 @@ +(defmacro unless (test :rest body) + `(if (not ,test) (progn ,@body))) +;;(defun reduce (function sequence) +;; (let ((res 0)) +;; (for ((xs sequence (cdr xs))) +;; ((null xs) res) +;; (setq res (+ res (car xs)))))) +;;(reduce #'+ (map '<list> #'abs values)) +(defun sum (sequence) + (let ((res 0)) + (for ((xs sequence (cdr xs))) + ((null xs) res) + (setq res (+ res (car xs)))))) +(defun average-of-absolutes (values) + (the <list> values) + (unless (> (length values) 0) + (error "average-of-absolutes requires non-null list" values)) + (let ((res (quotient (sum values) (length values)))) + (unless (>= res 0) + (error "average-of-absolutes must ensure positive result" res)) + (the <fixnum> res))) +;; (average-of-absolutes '(1 3)) +;; (average-of-absolutes '()) |