#:g1: stringprepの紹介

Posted 2014-08-02 17:30:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の215日目です。

stringprepとはなにか

 stringprepは、Nub Games, Inc作のRFC-3454 stringprepと、XEP-0029 Jabber IDのライブラリです。

パッケージ情報

パッケージ名stringprep
Quicklisp
Quickdocsstringprep | Quickdocs
CL Test Grid: ビルド状況stringprep | CL Test Grid

インストール方法

(ql:quickload :stringprep)

試してみる

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

 stringprepは、Unicodeのドメイン名を比較する際に利用する前処理の規格だそうですが、stringprepの処理と似ている、Jabber IDに関連するものも提供しています。

nameprepはドメイン名の比較に使い、nodeprep、resourceprepは、これも関連したRFC-6122の規格にあるXMPPのresourceとnodeの比較に使います。
なお、Jabber IDの方は、主にjidパッケージにまとめられています。

(string= "multiple-value-bind" (stringprep:nameprep "MULTIPLE-VALUE-BIND"))
;=>  T

(string= "räksmörgås.josefsson.org" (stringprep:nodeprep "räksmörgås.josefßon.org")) ;=> T

(equal "σσ" (stringprep:nameprep "ςς")) ;=> T

(string= "σσ" (jid:full-jid "ςς")) ;=> T

(string= "aa" (jid:full-jid "AA")) ;=> T

(jid:full-jid-equal "aa" "AA") ;=> T

まとめ

 今回は、stringprepを紹介してみました。
stringprepを作っているNub Games, IncのGitHubのレポジトリには結構Common Lispのソースが転がっていますが、ゲーム製作にCommon Lispも使われているのでしょうか。

comments powered by Disqus