doc/list-exports.lisp (best-package-name: Don't sort the whole list.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 6 Aug 2019 11:58:23 +0000 (12:58 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 6 Aug 2019 12:06:27 +0000 (13:06 +0100)
Just pick the shortest one.

doc/list-exports.lisp

index f4117df..c47a500 100755 (executable)
          (find-symbol-homes paths package)))
 
 (defun best-package-name (package)
-  (car (sort (cons (package-name package)
-                  (copy-list (package-nicknames package)))
-            #'< :key #'length)))
+
+  ;; We pick the shortest one.  Strangely, there's no `find minimal thing
+  ;; according to this valuation' function in Common Lisp.
+  (loop with best = (package-name package)
+       with best-length = (length best)
+       for name in (package-nicknames package)
+       for name-length = (length name)
+       when (< name-length best-length)
+         do (setf best name
+                  best-length name-length)
+       finally (return best)))
 
 (defvar charbuf-size 0)