Mam ten prosty kod w SML:Nie dekonstrukcji rodzaj produktu po uproszczeniu w SML
type int_pair = int * int;;
type a = A of int_pair;;
let extract (A x) = x;;
Testowanie mój extract
funkcji, wydaje się działać:
# extract (A (1,2));;
- : int_pair = (1, 2)
I uprościć go, więc potrzebuje tylko jednego typu:
type a' = A' of int * int;;
let extract' (A' x) = x;;
Ale pojawia się błąd:
Error: The constructor A' expects 2 argument(s),
but is applied here to 1 argument(s)
Najśmieszniejsze jest to, mogę skonstruowania wartości a'
...
# A' (1,2);;
- : a' = A' (1, 2)
... po prostu nie mogę ich dekonstrukcji. Czemu?