#:g1: chaining-compareの紹介

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

(LISP Library 365参加エントリ)

 LISP Library 365 の190日目です。

chaining-compareとはなにか

 chaining-compareは、Danny Yoo氏作の述語を連結して一つの式の中に書けるユーティリティです。

パッケージ情報

パッケージ名chaining-compare
PLaneTPLaneT Package Repository : PLaneT > dyoo > chaining-compare.plt

インストール方法

 racketから

(require (planet dyoo/chaining-compare:1:1/chaining-compare))

でインストール可能です。

試してみる

 ユーティリティーのセット一式かなにかと思いましたが、マクロ一発もののようです。

(let ((x 1)
      (y 2)
      (z 2))
  (chaining-compare x < y <= z))
;=> #t

(let ((x 3) (y 3) (z #t)) (chaining-compare x <= y and z)) ;=> t

(chaining-compare #t and #t and #t and #t) ;=> #t

(chaining-compare #f or #f or #t)

のようなものは、

(let ([tem #f])
  (if (or #f tem)
      (or tem #t)
      #f))
;=> #f

のように展開されるので若干の注意が必要かなと思います。

まとめ

 今回は、chaining-compareを紹介してみました。
なんとなくPLaneTは安定しているという勝手な先入観がありましたが、実際には置いてるライブラリもメンテナンスされてなかったり情報が古かったりで、導入できないものが結構あったりするもんだなあと思いつつあります。

comments powered by Disqus