(apply-generic op . args)

教育者, 将軍, 栄養士, 心理学者, 親はプログラムする. 軍隊, 学生, 一部の社会はプログラムされる. - 計算機プログラムの構造と解釈 序文

Common LispライブラリShellyを試してみた

MakeやRakeみたいなことが出来るLispライブラリShellyを試してみました。 おもしろいので貴方も試してみましょう(今回は一回もエディタを開いていないので、Emacsじゃないと、、、みたいなことは一切ないよ!!!)。

Shellyのサイトはこちら.

昔シェリーというイタリア人と付き合っていた事があって、Shellyという単語をみて懐かしいなーと思ったのが切っ掛けです(実話).

Common Lispは素晴らしい言語ですが縁が無い方が結構おられると思いますので、処理系のインストールから始めてみましょう。 以下、環境はMacOSX 10.9.2です。

Common Lispのインストール

Common Lispに限らず、Lisp族は沢山の処理系が存在するのでまず,どの処理系を使うのか選ばなくてはいけません。 今回はModernCommonLisp 第1回 Common Lisp処理系のインストールを参考に、Clozure CLを選択します。

~ iori:λ brew search clozure
clozure-cl
~ iori:λ brew install clozure-cl

こんだけ.

ライブラリを利用するためにQuciklispをインストールする

Rubyでいうgemとかそういうの。 これもインストールは簡単で

~ iori:λ wget http://beta.quicklisp.org/quicklisp.lisp
~ iori:λ ccl
Welcome to Clozure Common Lisp Version 1.9-r15758  (DarwinX8632)!
? (load "quicklisp.lisp")
? (quicklisp-quickstart:install :path ".quicklisp/")
? (ql:add-to-init-file)

こんだけ.

Shellyをインストールする

http://shlyfile.org/ に書いてある

$ curl -L http://shlyfile.org/shly | perl - install
$ PATH=$HOME/.shelly/bin:$PATH

を実行するだけ

なんか試してみる

~/work iori:λ mkdir shelly
~/work iori:λ cd shelly
~/work/shelly iori:λ echo '(defun fib (n) (if (< n 2) n (+ (fib (- n 2)) (fib (- n 1)))))' > shlyfile
~/work/shelly iori:λ shly fib 10

55

わーい、RakeとかMakeみたいなことがCLで出来たぞ!