2015-04-17 F#の関数とメソッド F# ぶれいすさん (F#レベルでの)*1型に紐づくのがメソッド。 型ではなくmodule、関数、値などに紐づくのが関数。*2 どちらかでしかできないこと メソッドだけ 可変長引数 オプショナル引数 名前付き引数 オーバーロード 無条件での前方参照(再帰メソッドでもrecが要らない) module内の関数だけ moduleをopenすればmodule名なしで使える カリー化形式での定義(メソッドではタプル形式でないと警告が出る) アクティブパターンの定義 使い分け 基本は関数を使う。 メソッドを使うとき 既存の演算子のオーバーロードをする時 コンピュテーション式を定義するとき ポリモーフィズムを使いたいとき(「ToString()をカスタマイズしたい」...) *1:ILレベルではmoduleもクラス *2:参照:型に紐づくように見える関数→「続きを読む」の先 続きを読む