Clojureの基礎〜Clojureの特徴〜
「Clojureの基礎〜名前空間〜 - oknknicの日記」に引き続き基礎メモ。
基本に立ち返って、Clojureの特徴を整理。
Lispである
構文をほとんどもたず、同図像性がある
関数型言語(ただし非純粋)
- 関数が第一級のオブジェクト
- 実行時に関数を生成できる
- 関数を引数にした関数を定義できる(高階関数)
- 関数を返す関数を定義できる
- 純粋関数は副作用をもたない
- データは不変になるため、必然的にスレッドセーフ
- 複数の関数を組み合わせても、想定外の相互作用が発生し辛い
- 純粋関数は参照透過性をもつ
- 遅延評価できる
- メモ化できる
- 並列化できる
- 関数実行に必要な情報は引数のみである
- 引数のみ準備すればよいため、テストし易い
非純粋関数型言語としての特徴
- 副作用のサポート
- 参照、エージェント、アトム、そしてソフトウェアトランザクショナルメモリ
- 動的束縛
JVM上で動く
JVM以外でも動く
- ClojureScript
- ClojureCLR
参考文献
- 作者: Stuart Halloway and Aaron Bedra,川合史朗
- 出版社/メーカー: オーム社
- 発売日: 2013/04/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る