8
に簡素化した後、私はOCamlでは、この単純なコード持っている製品の種類を分解することができません:私はそれを簡素化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;;
テスト私のextract
機能を、動作するように表示されます
type a' = A' of int * int;;
let extract' (A' x) = x;;
エラーが発生する:
Error: The constructor A' expects 2 argument(s),
but is applied here to 1 argument(s)
面白いことに、私はちょうどそれらを分解することはできません...私はa'
...
# A' (1,2);;
- : a' = A' (1, 2)
の値を構築することができ、あります。どうして?