Use a recursive strategy instead of loop macro

This commit is contained in:
Marcus Kammer 2025-01-03 16:25:26 +01:00
parent 2f01a098ea
commit 5b225e7fe0
Signed by: marcuskammer
GPG key ID: C374817BE285268F

View file

@ -21,13 +21,12 @@
(defclass sus-calculator (calculator) ())
(defmethod calculator-calc-results ((calc sus-calculator) responses)
(loop :for response :in responses
:for timestamp = (first response)
:for values = (reverse-pairs (aggregate-values-per-group #'sus-response-entry-process
(rest response)))
:collect (cons :TIMESTAMP
(cons timestamp
(append values (sus-calc-score values))))))
(mapcar (lambda (response)
(destructuring-bind (timestamp &rest answers) response
(let ((values (reverse-pairs (aggregate-values-per-group #'sus-response-entry-process answers))))
(list* :TIMESTAMP timestamp (nconc values (sus-calc-score values))))))
responses))
;;;
;;; DISPLAYER
;;;