CLでSRFI-44 — #:g1

Posted 2012-04-19 05:09:00 GMT

CLでSRFI、今回は、SRFI-44の「Collections」です。
コレクションのライブラリです。

動作

(collection= #'=
             '(1 2 3 4)
             '(1.0 2.0 3.0 4.0))
;=>  T

(bag= #'=
      (bag 1 2 3 4)
      (bag 1 2 3 4 4 3 2 1))
;=>  T

移植について

オブジェクト指向の枠組みとしては、Tiny-Closを利用するのですが、CLOSを使うことにしました。
とはいえ、srfi-44の設計が一つの関数名に集約される訳ではなく、list-foo、bag-foo、collection-fooという風にコレクションごとに作成しつつcollection-fooはディスパッチする、というもののようなので、拡張性があるような無いようなというところで、結果として800を越す関数が定義されることになっています。
一応参照実装にあるテストは全部通しましたが、全然完成している気がしないので穴が沢山ある気がします…。 ■

comments powered by Disqus