神が山から降りて人々に語りかける
esehara shigeo
お前誰だ
esehara shigeo (30)twitter: @eseharanana music, Inc.
Pythonista // Clojuren
(25歳過ぎの)誰かの心を変えて今からLispを勉強させることができるとは思っていない。
普通のやつらの上を行け──ポール・グラハム
しかしLisp
『Land of Lisp』より
Lisperとは
『Land of Lisp』より
人間には神の言語は手に負えないピーテル・ブリューゲル『バベルの塔』より(1563年)
人間界で勝利したもの
私は贈り与え、分かち与えたいのだ、プログラムでのJavaがその括弧を喜び、Lispがその富を喜ぶようにしたいと願っている。
ツァラツストラかく語りき・ニーチェの改変
そのために私は底へ降りていかなければならない、まるでLisperが夕べにプロジェクトへと光をもたらそうとJavaへ沈んでいく時のように、あああまりに豊かなLambdaよ。
私もおまえと同じように降りていかなくて
はならない。わたしがそこに降りていこうと
している人々がそれを「没落」と名づけ
た。
ツァラツストラかく語りき・ニーチェの改変
※Rich Hickeyはこんなこと言ってはいない
かくしてLispの没落ははじまった
HOW A COMMON LISP PROGRAMMER VIEWS USERS OF OTHER LANGUAGESより
古い慣習の撤廃
Car・Cdrが無い
ClojureにはCar・Cdrがない
● CarとCdrはWikipediaによれば、そもそも機械語の"Contents of the Address part of Register number"といった命令から来ている
● しかし、時代は既に機械語とか低レベルとかそういうのを基礎教養とするものではない
● 結果、「意味がわからない!」● 代わりにfirstとrestという親しみやすい単語へ
人は未知なるものに対して恐怖を抱く(小林銅虫・「寿司・虚空編」絶賛連載中!より)
可読性の向上()が全てではない
Clojureの括弧たち
● 「[]」の参入(Vector)○ 例えばローカルスコープを作りたいときの変数宣言に使
う○ また関数の引数宣言のときに使う
● 「{}」の参入(連想配列)○ {:foo “bar”}みたいに宣言すると、(hoge :foo)みたいにと
れる
● 実はコンマが使える○ (def foo {:hoge “foo”, :bar “fuga”}) とすると見やすい
利便性それJVMでやればいいじゃん
Clojureとライブラリ
● leiningenというライブラリ管理ツールが結構優秀(自動的にパッケージ、repl立ち上げ、依存性解消、Devops、テスト色々)
● Lisp処理系ってたいていライブラリがないよね→JVM呼び出せればいいじゃん
● Clojure覚えても、JVM上だけでしょ.NETもあるし、JavaScriptにもできるよ
非Lisperへのリーチ
If Clojure disappeared tomorrow, what language(s) might you use as a “replacement”? http:
//cemerick.com/2012/08/06/results-of-the-2012-state-of-clojure-survey/
かくして人間に神の言語が与えられた
https://github.com/esehara/ClojureBiyori興味があったら上のレポジトリにLet’sアクセス