max min にkeyがない件
sortとかfindにはkeyが付き物なのに、なんでmax minは数値にしか対応していないのか。大体全然汎用性がないじゃん、と思った。このくらい無いわけがないが、探すのも面倒なので書いた。
(defun most (sequence predicate &key (key 'identity)) (let ((res (car sequence)) (v (funcall key (car sequence)))) (dolist (s (cdr sequence) res) (let ((u (funcall key s))) (if (funcall predicate u v) (setq res s v u))))))