OCaml Format モジュールを F# に変換しています。私の以前の質問を参照してください。
始めるために私は変わりました
タイプサイズ
外部 size_of_int : int -> size = "%identity"
外部 int_of_size : サイズ -> int = "%identity"
に
let size_of_int = sizeof
<int
>
私が知っている他のいくつかの調整は正しくありませんが、open_box と close_box に関連するすべてのコードをこれらの 3 行を期待して変換することができました。
ここで、変換したフォーマット モジュールのサブセットをテストできるように、これらの 3 行を変更する必要があります。
size_of_int と int_of_size を含む行と外部の行は、おそらく F# コアの関数に依存することを知っています。また、変換では%identityをおそらく無視できることも知っています。
私の最善の推測では、size_of_int と int_of_size を使用して size という名前の単純な型を作成するだけで済みますが、どのようにすればよいでしょうか?
編集
Jeffrey Scofieldの回答に基づいて、次の F# コードを作成できました。
type size =
interface
abstract size_of_int : int -> size
abstract int_of_size : size -> int
end
type size = int
let size_of_int i = i
let int_of_size s = s
これにより、Format モジュールのサブセットを正常にコンパイルできました。
編集
以下で回答したJackは、 FSharpx.Compatibility.OCaml.Format.Format.fs にバージョンを持っています。私はまだテストしていませんが、現在見つけた中で最も完全なバージョンです。