Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2010-07-07

KMRCLを眺める(173) SHOW-VARIABLES

| 22:25 | KMRCLを眺める(173) SHOW-VARIABLES - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める(173) SHOW-VARIABLES - わだばLisperになる

今回は、KMRCLのsymbols.lispからSHOW-VARIABLESです。

変数が束縛されたシンボルとその内容を表示するもののようです。

動作は、

(KL:SHOW-VARIABLES :CL)
->
Symbol *ERROR-OUTPUT*  -> #<SWANK-BACKEND::SLIME-OUTPUT-STREAM
                            {100E6B7271}>
Symbol CALL-ARGUMENTS-LIMIT  -> 1152921504606846975
Symbol *PRINT-BASE*  -> 10
Symbol MOST-NEGATIVE-SINGLE-FLOAT  -> -3.4028235e38
Symbol *LOAD-PRINT*  -> NIL
Symbol *GENSYM-COUNTER*  -> 2959
Symbol BOOLE-ANDC1  -> 12
Symbol BOOLE-C2  -> 5
Symbol LEAST-NEGATIVE-SINGLE-FLOAT  -> -1.4012985e-45
Symbol ARRAY-TOTAL-SIZE-LIMIT  -> 1152921504606846973
Symbol LONG-FLOAT-EPSILON  -> 1.1102230246251568d-16
Symbol *PRINT-RADIX*  -> NIL
Symbol *PRINT-CASE*  -> :UPCASE
Symbol LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT  -> 1.1754944e-38
Symbol ARRAY-RANK-LIMIT  -> 65529
Symbol +  -> (COMMON-LISP-USER::LOGIN 'COMMON-LISP-USER::MC)
Symbol LEAST-POSITIVE-DOUBLE-FLOAT  -> 4.9406564584124654d-324
Symbol ***  -> NIL
Symbol MOST-NEGATIVE-LONG-FLOAT  -> -1.7976931348623157d308
Symbol DOUBLE-FLOAT-EPSILON  -> 1.1102230246251568d-16
Symbol *  -> T
Symbol *LOAD-VERBOSE*  -> NIL
Symbol CHAR-CODE-LIMIT  -> 1114112
Symbol LEAST-NEGATIVE-LONG-FLOAT  -> -4.9406564584124654d-324
Symbol MOST-POSITIVE-LONG-FLOAT  -> 1.7976931348623157d308
Symbol BOOLE-AND  -> 6
Symbol BOOLE-ORC2  -> 15
Symbol MOST-NEGATIVE-FIXNUM  -> -1152921504606846976
Symbol *PRINT-CIRCLE*  -> NIL
....

となっています。定義は、

(defun show-variables (package)
  (do-symbols (s package)
    (multiple-value-bind (sym status)
        (find-symbol (symbol-name s) package)
      (when (and (or (eq status :external)
                     (eq status :internal))
                 (boundp sym))
        (format t "~&Symbol ~S~T -> ~S~%"
                sym
                (symbol-value sym))))))

で、そのままな感じです。