Skip to content

Commit

Permalink
show-all-used-common-lisp-symbols
Browse files Browse the repository at this point in the history
For listing all the symbols in a particular package that come from the CL package.

> (show-all-used-common-lisp-symbols :academy)

functions
▀▀▀▀▀▀▀▀▀

*                    +                       -                     /
/=                   1+                      1-                    <
<=                   =                       >                     >=
ABS                  ADJUST-ARRAY            AND                   APPLY
AREF                 ARRAY-DIMENSIONS        ASSOC                 ASSOC-IF
ATAN                 BOUNDP                  BREAK                 CAR
CASE                 CDDDR                   CDR                   CHAR
CHAR-CODE            CHAR-NAME               CHAR-UPCASE           CHAR=
CHARACTER            CODE-CHAR               COERCE                CONCATENATE
COND                 CONS                    CONSP                 COS
COUNT                DECF                    DEFMACRO              DEFPACKAGE
DEFPARAMETER         DEFSTRUCT               DEFUN                 DEFVAR
DESTRUCTURING-BIND   DIGIT-CHAR-P            DIRECTORY-NAMESTRING  DO
DOCUMENTATION        DOTIMES                 ECASE                 ELT
EQ                   EQL                     EQUAL                 EQUALP
ERROR                EVENP                   EVERY                 FBOUNDP
FILE-LENGTH          FILE-POSITION           FIND                  FIND-SYMBOL
FIRST                FLET                    FLOOR                 FORCE-OUTPUT
FORMAT               FRESH-LINE              FUNCALL               FUNCTION
GENSYM               GET-UNIVERSAL-TIME      GETHASH               HANDLER-CASE
IDENTITY             IF                      IN-PACKAGE            INCF
INTERSECTION         KEYWORDP                LABELS                LAMBDA
LENGTH               LET                     LET*                  LIST
LISTP                LOGAND                  LOGBITP               LOGCOUNT
LOOP                 MACROLET                MAKE-ARRAY            MAKE-HASH-TABLE
MAKE-LIST            MAKE-STRING             MAP                   MAPCAR
MAX                  MEMBER                  MINUSP                MOD
MULTIPLE-VALUE-BIND  NOT                     NREVERSE              NTH
NTHCDR               NULL                    OR                    PARSE-INTEGER
PLUSP                POSITION                PRIN1                 PRINC
PRINC-TO-STRING      PROBE-FILE              PROG1                 PROGN
PUSH                 QUOTE                   RANDOM                READ
READ-FROM-STRING     READ-LINE               READ-SEQUENCE         REDUCE
REMOVE-DUPLICATES    REMOVE-IF               REMOVE-IF-NOT         REST
RETURN               REVERSE                 ROUND                 SECOND
SET                  SETF                    SIN                   SORT
STEP                 STRING                  STRING-DOWNCASE       STRING<
SUBSEQ               SYMBOL-FUNCTION         SYMBOL-NAME           SYMBOLP
TAN                  TERPRI                  THIRD                 TYPEP
UNLESS               VALUES                  VECTOR                WARN
WHEN                 WITH-INPUT-FROM-STRING  WITH-OPEN-FILE        WITH-OUTPUT-TO-STRING
WITH-SLOTS           WRITE-CHAR              WRITE-STRING          ZEROP

everything else
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

&BODY        &KEY                &OPTIONAL  &REST
*READ-EVAL*  *STANDARD-OUTPUT*   NUMBER     PARSE-ERROR
PI           SEQUENCE            STREAM     SYMBOL
T            UNDEFINED-FUNCTION
  • Loading branch information
whalliburton authored and Student committed Jun 29, 2015
1 parent d73af58 commit 38ac1ad
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions common-lisp.lisp
Expand Up @@ -15,3 +15,22 @@
(print-table (group (sort functions #'string<) 2))
(print-heading "everything else")
(print-table (group (sort non-functions #'string<) 2))))

(defun list-all-used-common-lisp-symbols (system-name)
(let ((all-files
(remove-duplicates
(flatten
(loop for filename in (asdf-lisp-files system-name)
collect (read-lisp-file filename))))))
(multiple-value-bind (functions non-functions) (list-all-common-lisp-symbols)
(values
(sort (intersection all-files functions) #'string<)
(sort (intersection all-files non-functions) #'string<)))))

(defun show-all-used-common-lisp-symbols (system-name)
"Shows all the symbols used in the system named SYSTEM-NAME that come from the CL package."
(multiple-value-bind (functions non-functions) (list-all-used-common-lisp-symbols system-name)
(print-heading "functions")
(print-table (group functions 4))
(print-heading "everything else")
(print-table (group non-functions 4))))

0 comments on commit 38ac1ad

Please sign in to comment.