#:g1: cellsの紹介

Posted 2014-08-06 08:40:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の218日目です。

cellsとはなにか

 cellsは、Juergen Lorenz氏作の一つの値を保持するデータ構造で、さらに関数に変換できたりする、Chickenのライブラリです。

パッケージ情報

パッケージ名cells
Chicken eggs:cells - The Chicken Scheme wiki

インストール方法

$ sudo chicken-install cells

すれば、

(use cells)

(require-extension cells)

で利用できるようになります。

試してみる

 cellは一つ値を保持しますが、値の型も保持するようです。クロージャーに変換することによって、srfi-39のparameterみたいな使い方ができます(無引数で値の読み出し、一つ引数を取ると値を設定する)

(define num-cell (cell 42))

num-cell ;=> !42!

(cell? num-cell) ;=> #t

((cell-of? number?) num-cell) ;=> #t

(define nc (cell->closure num-cell))

(nc) ;=> 42

(nc 0)

(nc) ;=> 0

まとめ

 今回は、cellsを紹介してみました。
使いどころによっては便利そうな、そうでもないような

comments powered by Disqus