Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun dir (&key (package *package*) (prefix ""))
- "Returns a list of symbols inside PACKAGE (defaults to the current package), optionally restricted to those whose name begins with PREFIX."
- (let ((found-symbols '()))
- (do-symbols (sym package)
- (multiple-value-bind (_ status) (find-symbol (symbol-name sym) package)
- (declare (ignore _))
- (when (eq status :internal)
- (let* ((len (length prefix))
- (match-substr (subseq (symbol-name sym) 0 len)))
- (if (string= match-substr prefix)
- (push sym found-symbols))))))
- found-symbols))
- ;;; Sample use:
- ;CL-USER> (dir)
- ;(MATCH-SUBSTR TO SYM FOO FOUND-SYMBOLS FROM ITER P UNTIL STATUS PREFIX _
- ; QUICKLISP-INIT FINALLY FOR X LEN Y DIR)
- ;CL-USER> (dir :prefix "F")
- ;(FOO FOUND-SYMBOLS FROM FINALLY FOR)
Add Comment
Please, Sign In to add comment