Skip to content

Instantly share code, notes, and snippets.

@bleis-tift
Last active April 22, 2016 09:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bleis-tift/0f249861533a767a3309827bbba743a0 to your computer and use it in GitHub Desktop.
Save bleis-tift/0f249861533a767a3309827bbba743a0 to your computer and use it in GitHub Desktop.
元のコード 変更後のコード ソース互換性 バイナリ互換性 メモ
let f x y = ... let f (x, y) = ... No
let f (x, y) = ... let f x y = ... No
type t = int type s = int No Yes 型略称の名前を変更してもF#用のメタデータにしか影響はない
[<CN("a")>] type t = ... [<CN("a")>] type s = ... No Yes IL上の言語からはCNが変わっていなければいい

略語一覧

  • CNCompiledName
  • MSCompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)

調べるリスト

  • CN を付ける、外す
  • MS 関連
  • DUの順番入れ替え
  • レコードのフィールドの順番入れ替え
  • レコードのフィールド追加
  • inline化
  • 継承関係
  • 省略可能なパラメータ
  • null使うやつ
  • アクティブパターンのあれこれ
  • F#の型拡張を拡張メソッドに。またはその逆
  • 測定単位を付ける、はずす
  • 測定単位をジェネリックにする、固定する
  • DUのフィールド名を付ける、はずす
  • DUのデータをタプル化する、タプル化をやめる
  • 関数を値(FSharpFunc)にする、その逆
  • module の関数を typestatic member にする、その逆(名前はそのまま)
  • module の値を typestatic member にする、その逆(名前はそのまま)
  • null パターンを if による null チェックにする、その逆
  • refmutable にする、その逆
  • レコードのフィールドを mutable にする、その逆
  • Mapdict 、その逆
  • exceptiontype にする、その逆
  • ReferenceEquality
  • fsi の追加、削除
  • アクセス修飾子の変更
  • CLIMutable の追加、削除
  • let による演算子の定義を static member 化、その逆
  • 制約を付ける、外す
  • 型推論の結果が変わるようなオーバーロードの追加
  • コンピュテーションビルダーのシグネチャ変更
  • コンピュテーションビルダーへのメンバーの追加(特に DelayRun ?)
  • ValueWithName
  • メソッドのカリー化、その逆
  • メンバーを追加、削除
  • DUをenumに、その逆
  • FuncActionFSharpFunc に、その逆
@hafuu
Copy link

hafuu commented Apr 22, 2016

  • 可視性の変更
  • メソッドをカリー化。とその逆
  • メンバを型拡張、拡張メソッドに。とその逆
  • メンバを追加、削除

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment