Lisp

EmacsLispのファイルパス連結

EmacsLispでパスを連結する方法 別に (concat "/home" "/" "homuhomu") とかでも事足りてしまうんだけどやっぱり納得いかんよね。 file-name-as-directoryを使いましょう。 後ろに/を付けてくれる。 ELISP> (file-name-as-directory "/home") "/home/" ELISP…

金額を漢字フォーマット

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/47175 ruby-listでこういうメールが飛んでいて、ちょっとやってみようかと思った。EmacsLispで。 まず 12345678912345 ↑こんな数字があったとして、 (12345678912345) リストにして (123456789…

Ctrl+up/downでカーソルと一緒に領域を動かす(修正版)

Ctrl+up/downでカーソルと一緒に領域を動かす というのをちょっと前に書いたけど、いろいろ良くないところがあったのでちょっと修正。 (save-excursion &rest BODY) こいつを使うと現在の位置、マーク、カレントバッファを記憶し、 BODY部の処理を行ったあと…

SBCLでスタンドアロンプログラム

需要あるかどうかはおいといて standalone executablesをSBCLで作るには、sb-ext:save-lisp-and-dieを使います。Hello Worldするとこんな感じ (defun main () (format t "Hello, World!")) (sb-ext:save-lisp-and-die "cl-bin" :executable t :toplevel 'mai…

asdf(Another System Definition Facility)

現在最も幅広く使われているシステム定義ツールはASDFだ。 ASDFの背景にある基本的なアイディアは、 ASDファイルにシステムを定義することでASDFがシステムに対して 読み込みやコンパイルなどの数々の操作を提供する、というものだ。 ~Practical Common Lisp…

Common Lisp で XML を扱う

昨日はEmacs Lispでやったけど、今日はCommon Lispで試してみました。 Closure XMLというライブラリが便利。 http://common-lisp.net/project/cxml/ DOMに関して、便利そうなページ http://interaction.in-progress.com/developer/dom/