#:g1: lol-reの紹介

Posted 2014-07-20 14:50:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の201日目です。

lol-reとはなにか

 lol-reは、Alexander Popolitov氏作のLet Over Lambdaの#~m、#~sにインスパイアされたCL-PPCREを便利に使うためのライブラリです。

パッケージ情報

パッケージ名lol-re
Quicklisp
CLiKiCLiki: lol-re
Quickdocslol-re | Quickdocs
CL Test Grid: ビルド状況lol-re | CL Test Grid

インストール方法

(ql:quickload :lol-re)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 色々と謎なところが多いのですが、まず名前が紛らわしい。
Let Over Lambdaにインスパイアされただけでオリジナルと違うなら別の名前を付けた方が良いのではと思ったりはします。また、リーダーマクロの処理としてcl-read-macro-tokensを利用しているのは、何故なんでしょうね。必要なんでしょうか。
などと書いてしまいましたが、動作はこんな感じです。

(defpackage :lol-re-foo
  (:use :cl :lol-re))

(cl:in-package :lol-re-foo)

(enable-read-macro-tokens)

(list (m~ "(f)(o)(o)" "foo") $1 $2 $3) ;=> ("foo" "f" "o" "o")

(funcall (s~ "foo" "bar") "foo") ;=> "bar" ; T

(dolist (elt '("1" "2" "3")) (format t "~a" (m~ "[0-9]" elt))) ;>> 123 ;=> NIL

 その他、便利ユーティリティが数点用意されています。

まとめ

 今回は、lol-reを紹介してみました。
くどいですが、lol-reという名前なら、Let Over Lambdaのcl-ppcreのリーダーマクロ部分を取り出したライブラリって思っちゃいますよねー。

comments powered by Disqus