#:g1: eggs: kvlistsの紹介

Posted 2014-05-05 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の126日目です。

eggs: kvlistsとはなにか

 eggs: kvlistsは、Arto Bendiken氏作のChickenでplistのキーをキーワードにした形式のリストを扱うユーティリティです。

パッケージ情報

パッケージ名eggs: kvlists
Chicken eggs:K/V-lists - The Chicken Scheme wiki

インストール方法

$ sudo chicken-install kvlists

すれば、

(use kvlists)

(require-extension kvlists)

で利用できます。

試してみる

 基本的にplistのユーティリティと変わりないですが、ユーティリティが一通り揃っています。
利用できる関数は下記の通り。大体名前で動作の想像が付くと思います。


(use kvlists)

(define *kv* '(a: 97 b: 98 c: 99 d: 100 e: 101 f: 102 g: 103 h: 104 i: 105 j: 106 k: 107 l: 108 m: 109 n: 110 o: 111 p: 112 q: 113 r: 114 s: 115 t: 116 u: 117 v: 118 w: 119 x: 120 y: 121 z: 122))

(kvlist-ref *kv* t:) ;=> 116 (kvlist-assoc t: *kv*) ;=> (t: . 116)

(kvlist-cons* A: 65 *kv*) ;=> (A: 65 a: 97 b: 98 c: 99 d: 100 e: 101 f: 102 g: 103 h: 104 i: 105 j: 106 k: 107 l: 108 m: 109 n: 110 o: 111 p: 112 q: 113 r: 114 s: 115 t: 116 u: 117 v: 118 w: 119 x: 120 y: 121 z: 122)

(kvlist-map (lambda (k v) (cons k v)) *kv*) ;=> ((a: . 97) (b: . 98) (c: . 99) (d: . 100) (e: . 101) (f: . 102) (g: . 103) (h: . 104) (i: . 105) (j: . 106) (k: . 107) (l: . 108) (m: . 109) (n: . 110) (o: . 111) (p: . 112) (q: . 113) (r: . 114) (s: . 115) (t: . 116) (u: . 117) (v: . 118) (w: . 119) (x: . 120) (y: . 121) (z: . 122))

まとめ

 今回は、eggs: kvlistsを紹介してみました。
すぐ自作できる感じではありますが、手元にあるとちょっとした時に便利そうなユーティリティですね。

comments powered by Disqus