第1章 さあ、始めよう

1章のコードはcode/src/examples/introduction.cljにある。

1.1 なぜ Clojure なのか

Javaとの比較で高階関数を使うことでコードが簡潔に書けることを主張する。マクロの存在も匂わせている。他のLispよりも括弧が少ないというのは視覚上のメリットとS式単位の編集がやりにくくなるというデメリットがあると思う。

1.2 Clojure を書き始めよう

REPLの使い方と関数定義、状態の取扱いについて。セットやリファレンスが何かを説明せずに使いはじめているのは面喰らう構成だ。後でちゃんと説明があるのだろう。
リファレンスというデータ構造があって、その中に値を格納し、参照や変更には専用の関数を必要とする程度に思っておく。

1.3 Clojure ライブラリの探索

CLと同じようにrequireやuseできる。useがCLのuse-packageに相当する。名前衝突してもエラーを出さずに上書きしてしまうらしい。これは微妙に怖い仕様だ。プロジェクトの定義などをすっ飛ばしているけどこれも後でちゃんと説明があるのだろう。
docはCLのdocumentationに相当する。CLの場合は(documentation name-symbol 'function)のように関数の名前空間なのか変数の名前空間なのか指定する必要があったが、ClojureLisp-1なので(doc name-symbol)とするだけでいい。(find-doc "string")や(apropos "string")を使って関数を探す感じか。