#:g1: cl-emacs-ifの紹介

Posted 2014-01-04 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の5日目です。

cl-emacs-ifとはなにか

 名前で既にどんな物か分かる気もしますが、emacsのifをCommon Lispに導入するものです。
おまけに何故かwhileも付いてきます。

パッケージ情報

パッケージ名cl-emacs-if
Quicklisp
Quickdocshttp://quickdocs.org/cl-emacs-if

インストール方法

(ql:quickload :cl-emacs-if)

試してみる

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

 Common Lisp/SchemeのifとEmacs Lispのifでの違いといえば、Emacs Lispはelse部が暗黙のprognになっているところです。
ifがMacLISP系のLispに導入されたのは意外と遅く、70年代の後半でしたが、当時色々な方式が提案されました。
MIT系のLispは、MacLISP/Lisp machine Lispともに、else部がprognになっている方式になりましたが、Common Lispでは、Schemeと同じく一つの式のみとなりました。
Emacs Lispは、rmsが親しんだ、MacLISP/Lisp machine Lispのものを採用したんでしょうね。

(let ((x :hello))
 (emacs-if:if (consp x)
              x
            (setq x (list x))
            (print x)))
;>>  
;>>  (:HELLO) 
;=>  (:HELLO)

cl-emacs-ifの紹介/関連記事等

まとめ

 今回は、cl-emacs-ifを紹介してみました。
こんな一発物でもQuicklispに登録できるんだなという感じで好感が持てます。
自分も一発物をQuicklispに申請してみたいものです。

comments powered by Disqus