]> git.earman.xyz Git - lisp/workenv.git/commitdiff
Replace cond with if in average-of-points
authorrearman <rearman@r717.net>
Mon, 13 Apr 2026 20:00:20 +0000 (16:00 -0400)
committerrearman <rearman@r717.net>
Mon, 13 Apr 2026 20:00:20 +0000 (16:00 -0400)
Don't use a cond with only two paths

math.lisp

index 70099e8c486e90255ada577b2ab8921260f1a328..405669da10f545a2aedb39b144036016e8a5f6c7 100644 (file)
--- a/math.lisp
+++ b/math.lisp
 (defun average-of-points (points)
   "Calculate an average of 2d or 3d points, given as a list of lists.
 If a 2d point is given, it is converted to 3d with z=0."
-  (cond ((numberp (first points))
-        points)
-       (t (let ((numpoints (length points)))
-            (mapcar #'/
-                    (list (apply #'+ (mapcar #'first points))
-                          (apply #'+ (mapcar #'second points))
-                          (apply #'+
-                                 (mapcar #'(lambda (x)
-                                             (if (null (third x))
-                                                 0
-                                                 (third x)))
-                                         points)))
-                    (list numpoints
-                          numpoints
-                          numpoints))))))
+  (if (numberp (first points))
+      points
+      (let ((numpoints (length points)))
+       (mapcar #'/
+               (list (apply #'+ (mapcar #'first points))
+                     (apply #'+ (mapcar #'second points))
+                     (apply #'+
+                            (mapcar #'(lambda (x) (if (null (third x)) 0 (third x)))
+                                    points)))
+               (list numpoints numpoints numpoints)))))
 
 (defun dot-product-points (apoint bpoint)
   "Return the dot-product of 3d vectors a and b.