TL;DR
- Clojure の関数は、ものごとを抽象化する手段である。
defnで定義し、引数の数によるオーバーロードや可変長引数も書ける。 recurによる再帰、マルチメソッド、:preと:postによる事前条件・事後条件、ドキュメント化、無名関数と高階関数を扱う。
内容
Clojure における関数は、ものごとを抽象化する手段である。コードが複雑になるたびに、それを別の関数として切り出してリファクタリングすることで、関数をビルディングブロックとして使えるようになる。
たとえば (+ 1 2) を呼び出すとき、+ は関数で、1 と 2 は引数である。このときユーザ(開発者)は、引数の値がどう処理されるかを意識せずに使える。このような抽象化により、開発者はコードをシンプルに保ち、複雑な計算や処理を単純な関数呼び出しとして扱える。
各節のまとめは次のページにある。
- Clojure Book 第9章 最も簡単な関数
- Clojure Book 第9章 引数を受け取る
- Clojure Book 第9章 複数の引数を受け取る
- Clojure Book 第9章 可変長引数を受け取る
- Clojure Book 第9章 戻り値
- Clojure Book 第9章 再帰
- Clojure Book 第9章 マルチメソッド
- Clojure Book 第9章 事前条件・事後条件
- Clojure Book 第9章 ドキュメント化
- Clojure Book 第9章 無名関数
- Clojure Book 第9章 高階関数