diff options
author | Darren Bane <darren.bane@emdalo.com> | 2021-02-03 13:37:05 +0000 |
---|---|---|
committer | Darren Bane <darren.bane@emdalo.com> | 2021-02-03 13:37:05 +0000 |
commit | 7d8b2e2771e285aeac26e56feafdbf4eb155ab38 (patch) | |
tree | 942623117da0e15ddfa8191e5a0c9fb042c4c698 /dbc2.lsp | |
parent | 9afa76a988bc71737cb167b340bd2973a7aaaa2a (diff) | |
parent | dbb7e6694c351ea0bd78d8405e5fe852f6de04b2 (diff) | |
download | lsp-7d8b2e2771e285aeac26e56feafdbf4eb155ab38.tar.gz |
Merge branch 'master' of tilde.institute:public_repos/lsp
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 '()) |