#:g1: symbol-mungerの紹介

Posted 2014-01-30 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の31日目です。

symbol-mungerとはなにか

 symbol-mungerは、識別子で使われる色々は方式(CamelCase、snake_case、etc)とLispで良く使われるハイフン区切りのシンボル名とを相互に変換するためのライブラリです。

パッケージ情報

パッケージ名symbol-munger
Quicklisp
CLiKihttp://cliki.net/symbol-munger
Quickdocshttp://quickdocs.org/symbol-munger

インストール方法

(ql:quickload :symbol-munger)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 かなり細かくユーティリティが揃っているのですが、動作を見れば何をするものかは分かるかなと思います。

(symbol-munger:english->lisp-symbol "Hello World")
;=>  HELLO-WORLD
;    :INTERNAL

(symbol-munger:english->lisp-symbol "Hello, World!") ;=> |HELLO,-WORLD!| ; :INTERNAL

(symbol-munger:english->lisp-symbol "foo bar baz") ;=> FOO-BAR-BAZ ; :INTERNAL (symbol-munger:underscores->lisp-symbol "foo_bar_baz") ;=> FOO-BAR-BAZ ; :INTERNAL

(symbol-munger:camel-case->lisp-symbol "fooBarBaz") ;=> FOO-BAR-BAZ ; :INTERNAL

(symbol-munger:camel-case->lisp-symbol "FooBarBaz") ;=> FOO-BAR-BAZ ; :INTERNAL

(symbol-munger:lisp->english :foo-bar-baz) ;=> "Foo Bar Baz"

(symbol-munger:lisp->english 'c2mop:compute-applicable-methods-using-classes) ;=> "Compute Applicable Methods Using Classes"

 Lispと他の言語のソースコードとの相互変換等で利用するのに便利そうですね。

まとめ

 今回は、symbol-mungerを紹介してみました。
こういうニッチなライブラリもなかなか良いです。

comments powered by Disqus