色々情報収集. 上手いタイトルが思い浮かばない

色々情報集め中. なんかかなり楽しくなってきた.
ただ日本語の情報は, そんなに多くないね. どっかで英語に触れる必要がある.
簡単に検索して情報を集めてみた.

http://b.hatena.ne.jp/khiker/lisp/

2chにも言ってみたけど, 処理系は色々あるみたいね.
スレによるとclispは, バーチャルマシンらしい. ということはネイティブコードには落とせないのかな?
2chのオススメは, SBCLってやつ. その内使ってみるかな.



コマンドclispへ拡張子.lispファイルを渡して, 実行するサンプルを調べて作ってみた.

;; my main
(defun main ()
  (print *args*))

(main)

関数名は, mainである必要はどこにもない. 別にtestでも何でもいい.

$ clisp testfile.lisp

("a" "b" "c") 

こんな感じで表示されるはず.
「*args*」が引数をとる変数らしい.


こいつをコンパイルしてみる.

$ clisp -c testfile.lisp

これでエラーがなければコンパイルできて, 「testfile.fas」, 「testfile.lib」の2つが生成されているはず.
testfile.fasコンパイルされたファイル.



ついでにshebang書いた場合.
自分の環境だと, clispの場所はこんなとこ.

$ where clisp
/usr/bin/clisp

/usr/bin/以下にあるらしい. よって, shebangは, こんな感じでOK.

#!/usr/bin/clisp

;; my main
(defun main ()
  (print *args*))

(main)

あとは, ファイルに実行権限を与えてやれば, ファイルを直接指定してやるだけで実行できる.

$ chmod u+x testfile.lisp
$ ls -l
合計 1
-rwxr--r-- 1 khiker khiker 296 12月 30 16:22 testfile.lisp*
$ ./testfile.lisp 1 2 3

("1" "2" "3")