Update ux related functions

This commit is contained in:
Marcus Kammer 2024-02-26 16:18:34 +01:00
parent 7605ddc1b0
commit 63e9c5d7e3

View file

@ -328,18 +328,20 @@
(cond ((null sym) tbl)
(t (ux:filter-tbl (cdr sym) (ux:filtered-tbl (car sym) tbl)))))
(defun ux:sus-calc-stats (result)
(cond ((cl-oddp (car result))
(mapcar (lambda (x) (1- x)) (car (last result))))
((cl-evenp (car result))
(mapcar (lambda (x) (- 5 x)) (car (last result))))))
(defun ux:transpose (lst)
(if (memq nil lst)
nil
(cons (mapcar #'car lst)
(ux:transpose (mapcar #'cdr lst)))))
(defun ux:sus-sum-cols (table)
(let ((n (length (car table))))
(mapcar (lambda (i)
(apply '+ (mapcar (lambda (row) (nth i row)) table)))
(number-sequence 0 (1- n)))))
(defun ux:sus-calc-score (lst)
(let ((counter 0))
(mapcar (lambda (x)
(setq counter (1+ counter))
(if (= 0 (% counter 2))
(- 5 x)
(1- x)))
lst)))
(defun ux:calc-sus-score (results-tbl)
(let ((tbl (ux:sus-sum-cols (mapcar #'ux:sus-calc-stats results-tbl))))
(/ (apply #'+ (mapcar (lambda (x) (* x 2.5)) tbl)) (length tbl))))
(defun ux:sus-calc-score-per-row (lst)
(* (apply '+ (ux:sus-calc-score lst)) 2.5))