闇プログラミング
プログラミングの歴史は古く、その始まりは古代ローマが起源であるとされている。古代ローマでは、プログラミングによって培ったその圧倒的な技術力から大陸間弾道ミサイルや光学迷彩技術を作り出したとさえ言われている。しかしながら、後におきる古代ローマ大炎上と呼ばれる一大プロジェクト抗争によって、多くのプログラマーは歴史の闇へと消え、栄華を極めた古代ローマプログラミングの技術も一緒に消えていきました。当時の技術はその時に失われてしまいましたが、言語という無形の遺産は人伝てに現代まで語り継がれています。そうして語り継がれるうちに、一つの言語は方言のように派生していき多様な言語を生み出しました。
そんなわけで今回は古代ローマを始祖とするプログラミング言語Lispを触っていきたいと思います。
さて、Lispへの熱い風評被害もこの辺にして、まずはまじめに歴史の話をしましょうかね。Lispってこんな言語です。
LISPは、プログラミング言語である。前置記法などが特徴である。
1958年にはじめて設計されたLISPは、現在広範囲に使用されている高水準プログラミング言語の中でもFORTRANに次いで2番目に古い。ただし、FORTRANと同様に、現在のLISPは初期のものから非常に大きく変化している。
これまでに多数の方言が存在してきたが、今日最も広く知られるLISP方言は、Common LispとSchemeである。
はい、こんな感じの言語です。一般人にはEmacsをいじることにしか使わない言語となりますが闇プログラマになると何でもできるそうです。言語の特徴としてはめっちゃカッコを使うのと、方言が多いことが挙げられますが、実際のところ僕もこれから使うのでそれ以上の特徴はよくわかりません。
闇の準備編
よくわからないのにいろんなことをやろうとする向こう見ずな僕ですので、準備も適当にやっていこうと思います。闇インターネットの情報によるとここのサイトがLispをやるにはいいらしいです。
よくわかりませんが、「Steel Bank Common Lisp (SBCL)」ってやつらしいです。まあよくわかんないのでyum install sbcl
でもapt-get install sbcl
してさくっと闇インストールしていきましょう。
闇インストールしてsbcl
コマンドを叩くとこんな感じの味気ない画面がでるようです。
***@***:~$ sbcl This is SBCL 1.3.1.debian, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information.
さてLispですが普通のプログラミング言語と異なり書き方にかなり癖があります。
たとえば四則演算なら。以下のようになります。ちなみに、;
はコメントアウトです。
* (+ 1 3) ; 1 + 3 4 * (- 5 1) ; 5 - 1 4 * (* 2 3) ; 2 * 3 6 * (/ 10 5) ; 10 / 5 2
まあ、そんな感じでプログラミングを始める人が一番に書く恒例の「ハロー新世界」を書くとこのようになります。
* (print "Welcome 2 Darkness World") "Welcome 2 Darkness World"
以上です。これで何ができるかはさっぱりですね。
あ、そういえばこのLispってやつは分数計算もできるそうですよ。こんな感じに。
* (+ 1/3 2/7) 13/21 * (+ 1/6 2/9) 7/18 * (+ 4/7 1/4) 23/28
へーって感じですね。
とりあえずこんなことができるので小学校の宿題とかこれで余裕ですね。それじゃあ、次回はこの機能を使って闇のうんこ分数計算ドリルとか作ってみましょうかね。