私はこのような差別された組合を持っています:
type A = |B | C of int*A
次のようにパターン マッチする必要があります (かっこが必要なようです)。
match x with
| B -> printfn "B"
| C (i,a) -> printfn "%A, %A" i a
代わりに、このようにアクティブなパターンのようなものと一致させる方法はありますか:
match x with
| B -> printfn "B"
| C i a -> printfn "%A, %A" i a
そうでない場合、カリー化された引数とのこのマッチングが機能せず、代わりにタプルの使用を強制するように F# が設計されているのはなぜでしょうか?
h::t
編集:これは、タプルなどを使わずに使用できる F# リストに触発されたものです。ソースコードは次のようになります。
type List<'T> =
| ([]) : 'T list
| (::) : Head: 'T * Tail: 'T list -> 'T list