ボックス化されていないベクターで使用するために、自分のデータ型をボックス化しないようにするための良いリソースを見つけるのが難しいです。 data Color = Yellow | Red | Green | Blue | Empty deriving (Show, Eq)
をUnboxのインスタンスにするにはどうすればよいですか。 編集:もう少し詳しく調べてみると、いくつかの関数でパラメタを強
this questionとthis blog postを読むと、タイプ代数とそれを乱用する方法についての詳細がわかりました。 基本的には、 1)私たちは、さらにとしてEither A Bタイプと考えることができます:A+B 2)当社は、乗算として順序対(A,B)と考えることができます:A*B 3)私たちが考えることができます関数のA -> B累乗として:B^A ここには明らかなパターンがあります
に簡素化した後、私はOCamlでは、この単純なコード持っている製品の種類を分解することができません:私はそれを簡素化 # extract (A (1,2));;
- : int_pair = (1, 2)
、それ: type int_pair = int * int;;
type a = A of int_pair;;
let extract (A x) = x;;
テスト私のext