概要
(書きかけ)
いわゆる「関数型言語」と呼ばれる類の言語の設計手法、 オブジェクト指向言語でも使えるところは多い(というか、そもそも明確に分ける意味もあまりない)。
関数(function)中心の設計。
メソッドをオブジェクトとして扱う → デリゲート
デリゲートが有用な場面 → イベント駆動、高階関数、非同期処理
純粋な関数(pure function)、フィールド等を参照せず、同じ入力に対して常に同じ出力を返す関数。
などの説明を予定
(予定) タイトル要検討 OOP で「クラスの付属品」になってたメソッドに再度焦点を OOP と 関数型の mixed パラダイム 第一級関数 高階関数 ラムダ式 用途: イベント駆動(コールバック) 処理の差し替え(IoC 制御の逆転) 非同期処理 データ処理、パイプライン化 インターフェイスに実装持ちたい → 実は後置きしたいだけ。静的メソッドを後置きできれば解決 → 拡張メソッド ↓こういう類の説明を入れる http://csharptan.wordpress.com/2011/12/14/ [インターフェイス: どういうメンバーを持っているかという規約] → [静的メソッド: 規約に対して使えるアルゴリズム] ↓ [実装: 規約を満たす具象クラス] インターフェイス: ユークリッド整域 アルゴリズム: ユークリッド互除法 実装: 整数、多項式