#:g1: uuidの紹介

Posted 2014-02-03 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の35日目です。

uuidとはなにか

 uuidは、その名前そのまま、uuid生成のライブラリです。

パッケージ情報

パッケージ名uuid
Quicklisp
プロジェクトページUniversally Unique Indentifier
CLiKihttp://cliki.net/uuid
Quickdocshttp://quickdocs.org/uuid

インストール方法

(ql:quickload :uuid)

試してみる

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

 uuidにも各種ありますが、1、3、4、5をサポートしています。

(uuid:make-v1-uuid)
;=>  44759000-7DFD-11E3-9E9F-78C226DAB401

(uuid:make-v4-uuid) ;=> 5320E22F-50CA-4B9A-98C8-F2B8CD8C71B2

(uuid:make-v3-uuid uuid:+namespace-url+ "http://g000001.cddddr.org") ;=> C59AAB63-6CAA-38B2-9714-2487530818C2

(uuid:make-v5-uuid uuid:+namespace-url+ "http://g000001.cddddr.org") ;=> 8BE4C373-2BFD-52D1-A1BF-044664142B62

 上記をみるとシンボルが返ってきているように見えますが、印字表現が付いているだけなので、文字列として取り出すには、

(princ-to-string (uuid:make-v4-uuid))

等する必要があります。
ユーティリティ内には、

(uuid:print-bytes t (uuid:make-v4-uuid))
;>>  91625E2C35724333B9F9C453F23ABF10
;=>  NIL

(uuid::format-as-urn t (uuid:make-v4-uuid)) ;>> urn:uuid:27032cf6-8a69-424f-9b88-029d6fc124c0 ;=> NIL

のような関数もあり。

uuidの紹介/関連記事等

まとめ

 今回は、uuidを紹介してみました。
gensymの代わりに使ってみたい気もしますが、やっぱり長いですね。

comments powered by Disqus