#:g1: com.informatimago.tools.symbolの紹介

Posted 2014-12-11 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の346日目です。

com.informatimago.tools.symbolとはなにか

 com.informatimago.tools.symbolは、Pascal Bourguignon氏作のシンボルを扱うユーティリティです。

パッケージ情報

パッケージ名com.informatimago.tools.symbol
Quicklisp

インストール方法

(ql:quickload :com.informatimago.tools.symbol)

試してみる

 現在のところ定義されているのは2つの関数のみで、check-duplicate-symbolsと、duplicate-symbolsがあります。

(com.informatimago.tools.symbol:duplicate-symbols
 :packages (mapcar #'find-package '(:cl :arc)))
;=>  ((ARC:WRITE WRITE) (ARC:WHEN WHEN) (ARC:UNLESS UNLESS) (ARC:UNION UNION)
;     (ARC:TYPE TYPE) (ARC:TIME TIME) (ARC:THROW THROW) (ARC:TAN TAN)
;     (ARC:SUBST SUBST) (ARC:STRING STRING) (ARC:SORT SORT) (ARC:SLEEP SLEEP)
;     (ARC:SIN SIN) (ARC:SET SET) (ARC:REM REM) (ARC:REDUCE REDUCE) (ARC:READ READ)
;     (ARC:PUSHNEW PUSHNEW) (ARC:OR OR) (ARC:NUMBER NUMBER) (ARC:NTHCDR NTHCDR)
;     (ARC:MISMATCH MISMATCH) (ARC:MIN MIN) (ARC:MERGE MERGE) (ARC:MAX MAX)
;     (ARC:MAP MAP) (ARC:LOOP LOOP) (ARC:LOG LOG) (ARC:LIST LIST) (ARC:LET LET)
;     (ARC:LAST LAST) (ARC:IF IF) (ARC:GET GET) (ARC:FIND FIND)
;     (ARC:DO
;       DO)
;     (ARC:COUNT COUNT) (ARC:COS COS) (ARC:CONS CONS) (ARC:COMPLEMENT COMPLEMENT)
;     (ARC:COERCE COERCE) (ARC:CHAR CHAR) (ARC:CDDR CDDR) (ARC:CATCH CATCH)
;     (ARC:CASE CASE) (ARC:CADR CADR) (ARC:CAAR CAAR) (ARC:ATOM ATOM)
;     (ARC:ASSOC ASSOC) (ARC:ASSERT ASSERT) (ARC:APPLY APPLY) (ARC:AND AND)
;     (ARC:ADJOIN ADJOIN) (ARC:ACONS ACONS) (ARC:>= >=) (ARC:> >) (ARC:= =)
;     (ARC:<= <=) (ARC:< <) (ARC:++ ++) (ARC:+ +))

(com.informatimago.tools.symbol:check-duplicate-symbols :packages (mapcar #'find-package '(:cl :arc))) ;>> ((ARC:WRITE CL:WRITE) (ARC:WHEN CL:WHEN) (ARC:UNLESS CL:UNLESS) ;>> (ARC:UNION CL:UNION) (ARC:TYPE CL:TYPE) (ARC:TIME CL:TIME) ;>> (ARC:THROW CL:THROW) (ARC:TAN CL:TAN) (ARC:SUBST CL:SUBST) ;>> (ARC:STRING CL:STRING) (ARC:SORT CL:SORT) (ARC:SLEEP CL:SLEEP) ;>> (ARC:SIN CL:SIN) (ARC:SET CL:SET) (ARC:REM CL:REM) (ARC:REDUCE CL:REDUCE) ;>> (ARC:READ CL:READ) (ARC:PUSHNEW CL:PUSHNEW) (ARC:OR CL:OR) ;>> (ARC:NUMBER CL:NUMBER) (ARC:NTHCDR CL:NTHCDR) (ARC:MISMATCH CL:MISMATCH) ;>> (ARC:MIN CL:MIN) (ARC:MERGE CL:MERGE) (ARC:MAX CL:MAX) (ARC:MAP CL:MAP) ;>> (ARC:LOOP CL:LOOP) (ARC:LOG CL:LOG) (ARC:LIST CL:LIST) (ARC:LET CL:LET) ;>> (ARC:LAST CL:LAST) (ARC:IF CL:IF) (ARC:GET CL:GET) (ARC:FIND CL:FIND) ;>> (ARC:DO ;>> CL:DO) ;>> (ARC:COUNT CL:COUNT) (ARC:COS CL:COS) (ARC:CONS CL:CONS) ;>> (ARC:COMPLEMENT CL:COMPLEMENT) (ARC:COERCE CL:COERCE) (ARC:CHAR CL:CHAR) ;>> (ARC:CDDR CL:CDDR) (ARC:CATCH CL:CATCH) (ARC:CASE CL:CASE) (ARC:CADR CL:CADR) ;>> (ARC:CAAR CL:CAAR) (ARC:ATOM CL:ATOM) (ARC:ASSOC CL:ASSOC) ;>> (ARC:ASSERT CL:ASSERT) (ARC:APPLY CL:APPLY) (ARC:AND CL:AND) ;>> (ARC:ADJOIN CL:ADJOIN) (ARC:ACONS CL:ACONS) (ARC:>= CL:>=) (ARC:> CL:>) ;>> (ARC:= CL:=) (ARC:<= CL:<=) (ARC:< CL:<) (ARC:++ CL:++) (ARC:+ CL:+)) ;>> ;=> <no values>

こんな感じに同名のシンボルを列挙してくれます。
check-duplicate-symbolsが表示ユーティリティで、リスト得たい場合には、duplicate-symbolsを使うという感じですね。

まとめ

 今回は、com.informatimago.tools.symbolを紹介してみました。パッケージ定義の時や、ライブラリのコードを読む前に確認したりする際に便利に使えそうですね。

comments powered by Disqus