TL;DR

  • Clojure は Lisp の方言の 1 つで、ほぼすべてのコードがリストのデータ構造である。
  • データ構造をプログラムとして扱えるので、コードに統一性があり、複雑な構文を覚えなくてよい。

内容

Clojure は Lisp の方言の 1 つである。ほとんどすべての Clojure のコードがリストのデータ構造であり、データ構造をプログラムとして扱えるので、とても強力な能力をもたらす。

Clojure のコードは次のパターンに従う。

(function-name argument-1 .... argument-n)

すべてが ( と ) で囲まれているが、これがリストのデータ構造である。List Processing 言語である Clojure は、リストのデータ構造を処理する機能を持っている。

例として、次の処理を考える。

(* 5 (+ 1 2 3))

* 関数は 2 つの引数を受け取り、1 つ目の引数は 5、2 つ目の引数は (+ 1 2 3) である。このデータ構造の最も深いところに注目すると、1、2、3 がそれぞれ関数 + に渡されている((+ 1 2 3))。これを実行すると 6 になるので、新しいデータ構造を式で表すと (* 5 6) になる。これを実行すると 30 になり、結果として 30 が得られる。

Clojure は Lisp なので、コードにとても統一性がある。OOP とは違い、複雑な構文を覚える必要はない。そのため、余計なことを考えず、ビジネスロジックに集中できる。

キーワード