Created
December 10, 2010 03:19
-
-
Save garaemon/735708 to your computer and use it in GitHub Desktop.
all of the built-in classes of CommonLisp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun enumerate-all-classes (&optional (result nil) | |
(prepended (list (find-class 't)))) | |
(if (null prepended) | |
result | |
(let ((subclasses (closer-mop:class-direct-subclasses (car prepended)))) | |
(let ((new-subclasses (remove-if | |
#'(lambda (c) | |
(member c (append prepended result))) | |
subclasses))) | |
(enumerate-all-classes (cons (car prepended) result) | |
(append new-subclasses (cdr prepended))))))) | |
(mapcar #'class-name (remove-if-not #'(lambda (x) (eq (find-package :common-lisp) (symbol-package (class-name x)))) (remove-if-not #'(lambda (x) (typep x 'built-in-class)) (ENUMERATE-ALL-CLASSES)))) | |
=> (FUNCTION FILE-STREAM STRING-STREAM STREAM CHARACTER SYMBOL BIGNUM FIXNUM | |
INTEGER RATIO RATIONAL DOUBLE-FLOAT SINGLE-FLOAT FLOAT REAL COMPLEX NUMBER | |
SIMPLE-ARRAY ARRAY NULL CONS LIST BASE-STRING SIMPLE-BASE-STRING SIMPLE-STRING | |
STRING SIMPLE-BIT-VECTOR BIT-VECTOR SIMPLE-VECTOR VECTOR SEQUENCE T) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
こうすればいいのか
(mapcar #'class-name (remove-if-not #'(lambda (x) (eq (find-package :common-lisp) (symbol-package (class-name x)))) (ENUMERATE-ALL-CLASSES)))
(FUNCTION FILE-STREAM STRING-STREAM STREAM TYPE-ERROR PROGRAM-ERROR PARSE-ERROR
CONTROL-ERROR END-OF-FILE READER-ERROR STREAM-ERROR FILE-ERROR PACKAGE-ERROR
UNBOUND-VARIABLE UNDEFINED-FUNCTION UNBOUND-SLOT CELL-ERROR DIVISION-BY-ZERO
FLOATING-POINT-OVERFLOW FLOATING-POINT-UNDERFLOW FLOATING-POINT-INEXACT
FLOATING-POINT-INVALID-OPERATION ARITHMETIC-ERROR PRINT-NOT-READABLE ERROR
STORAGE-CONDITION SERIOUS-CONDITION STYLE-WARNING WARNING SIMPLE-WARNING
SIMPLE-ERROR SIMPLE-TYPE-ERROR SIMPLE-CONDITION CONDITION PACKAGE
BROADCAST-STREAM SYNONYM-STREAM ECHO-STREAM TWO-WAY-STREAM CONCATENATED-STREAM
RESTART RANDOM-STATE HASH-TABLE READTABLE LOGICAL-PATHNAME PATHNAME
STRUCTURE-OBJECT METHOD METHOD-COMBINATION STANDARD-METHOD
STANDARD-GENERIC-FUNCTION GENERIC-FUNCTION STANDARD-CLASS STRUCTURE-CLASS
BUILT-IN-CLASS CLASS STANDARD-OBJECT CHARACTER SYMBOL BIGNUM FIXNUM INTEGER
RATIO RATIONAL DOUBLE-FLOAT SINGLE-FLOAT FLOAT REAL COMPLEX NUMBER
SIMPLE-ARRAY ARRAY NULL CONS LIST BASE-STRING SIMPLE-BASE-STRING SIMPLE-STRING
STRING SIMPLE-BIT-VECTOR BIT-VECTOR SIMPLE-VECTOR VECTOR SEQUENCE T)