#:g1: queueの紹介

Posted 2014-08-08 03:20:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の220日目です。

queueとはなにか

 queueは、Scott McIntire氏作のqueueのライブラリです。

パッケージ情報

パッケージ名queue
Quicklisp×
配布サイト(archive.org)Allegro CL Examples and Utilities

インストール方法

 Franzのサイトからダウンロードできたりするのですが、しばらく落ちたままなので、archive.orgを紹介しておきます。

試してみる

 queueでは、キューはコンスで表現されています。tconcと同じ構造なのですが、そういわれれば、tconcはキューとしても使えるんですね。
コンスの表現は、

((1 2 3 . #0=(4)) . #0#)

のようになり、dequeueでは、carのリストをpopし、enqueueでは、cdrを書き換える(cddrに連結して新たにcdrとする)、という風に後から追加されて前から出ていく感じになります。

 用意されているユーティリティは、

といったところです。

まとめ

 今回は、queueを紹介してみました。
世の中には上手いこと考える人がいるものです。ちなみに、このライブラリをSBCLでコンパイルしたところ、エラーになったので気付いたのですが、Allegro CLだと、

(do () (nil) ...)

が、

(do () () ...)

とも書けるんですね。

comments powered by Disqus