3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

commonlispの導入

Last updated at Posted at 2017-08-07

#rowsellとは

roswellとは、commonlispを快適にするために作られた統合ソフトウェアのことです。これをインストールすることで、commonlispのインストールから、commonlispのライブラリのインストールまでができます。commonlispの強い味方でもあります。絵を書くために、絵の具からキャンバスまでをすべてだしてくれたようなものだ。
 commonlispは強力かつ柔軟である言語であるため、避けられてきました。ですが、今は違います。roswellによって開発は断然に変わりました。どう変わったのかというと、今まではせっせと石切をしていたのが、いきなり現代建築に入ったほどの進化を遂げたのだ。言うなれば、神が人類にりんごを与えたのと同じ勢いの進化だ。
 ただ、導入にはかなり手こずる。初心者はまず導入の部分で挫折する。今のままでは初心者に受け入れられないままcommonlispは宇宙のはるかななたに追いやられたスペースノイドのような悲惨な結果が待ち受けているであろう。だから、あえて言おう。初心者にもわかりやすい記事が足りないと!
 というわけでとっとと記事を書こう。この記事を読んでcommonlispの入り口を叩こう!

#MAC

まず、
brew install roswell
をします。ダメだったら
brew update
とすれば大丈夫なはず。

これが終わったら、とりあえず、
ros run とすると、sbclが動きます。
ros runしてみたら、一度
(defun add (x)
(+ x 1))
としてみてください。おそらく、2と表示されます。
 何だそのくらいかと言ってはいけない。ここにもcommonlispの奥ゆかしい作法があるのだ。というのも、commonlispのカッコはもともとどこでバグが起きているのかをわかりやすくするための目印なのだ。何じゃそりゃと思われるかと思うが、そういうことになっているんだ。簡便なものを作ろうとしたら、結局わかりにくいもの作ってしまったという典型なんだ。ジオンの精神を形にしたら、ヅダができたと思ったほうが話が早い。
 カッコが多いのは、そのわかりやすさと、マクロといういものをつけるためにやったものだ。ただ、マクロをつけるとみんながみんな自分仕様の言語が仕上がるから、ノウハウを構築しづらい。だから、どうすることもできないのだ!

   だが、初心者にはそういうこと一切関係ないから、ここは読まなくても良い!
   

   さて、quicklispも同時にインストールされていると思いますので、

  (ql:quickload :clack)

 こうすると、clackというウェブサーバーのライブラリがインストールされます。
   

 そして、このclackはターミナルからでも動かせる仕様になっていて、commonlispをターミナルから動かせるようになるのです。
   
   それをするためには、roswellをexportしてパスを通さないといけません。
   

   そのパスは

   「$ echo "export PATH="$HOME/.roswell/bin:$PATH"" >> ~/.bashrc

 
 です。これを通すと

clackup app.lisp

で起動します。

Windows

windows?知らない子だな。というより、実家のwindows機が安定しなかったため、動かせませんでした。

 メタルマンの博士「本当にもしわけない」

3
2
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?