#:g1: readableの紹介

Posted 2014-03-13 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の73日目です。

readableとはなにか

 readableは、David A. Wheeler氏が提案するLisp方言に中置的な新しい記法を提供するものです。現在のところCommon LispとSchemeに対応の様子。

パッケージ情報

パッケージ名readable
Quicklisp
プロジェクトサイトReadable Lisp S-expressions Project
SRFISRFI 110: Sweet-expressions (t-expressions)
Quickdocshttp://quickdocs.org/readable

インストール方法

(ql:quickload :readable)

試してみる

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

 Lisp方言をまたがった提案で、Common Lispの場合は、ライブラリとして、Schemeの場合は、SRFI 110で提案されています。

 Common Lispの場合、

defun fib (n)
  if {n < 2} 
        n    
        {fib{n - 1} + fib{n - 2}}

のようなファイルを作成して、

(*:register-readtable :sweet
                      (let ((*readtable* (copy-readtable nil)))
                        (readable:enable-sweet)
                        *readtable*))

(let ((*readtable* (*:find-readtable :sweet))) (load (compile-file "/tmp/sweet.lisp")) (fib 10)) ;>> ; compiling file "/tmp/sweet.lisp" (written 05 MAR 2014 07:07:28 AM): ;>> ; compiling (DEFUN FIB ...) ;>> ;>> ; /tmp/sweet.fasl written ;>> ; compilation finished in 0:00:00.010 ;>> ;=> 55

という感じで利用できます。(named-readtablesを利用)

まとめ

 今回は、readableを紹介してみました。
SRFIにも通したりQuicklispでも利用できるようにしたりと、David A. Wheeler氏はかなりエネルギッシュな開発者だなという印象があります。

comments powered by Disqus