Использование типов Discriminated Union в привязках переменных

Я сделал собственный тип и хотел бы создать 2 переменные, которые доказывают, что мой тип работает должным образом.

type number = A of int | B of float;;

let a = 0;;
let b = 0.0;; 

Как мне изменить объявления переменных, чтобы заставить их вводить number? В настоящее время a имеет значение int, а b — число с плавающей запятой.


person jth41    schedule 25.10.2013    source источник


Ответы (2)


Чтобы заставить их быть типа number, все, что вам нужно сделать, это присвоить им значение типа number. Примеры, которые вы приводите:

let a = 0
let b = 0.0

присваивают их значениям типа int и float соответственно. Чтобы получить значения типа number, создайте объекты number из этих значений следующим образом:

let a = A(0)
let b = B(0.0)
person N_A    schedule 25.10.2013

Вы просто идете:

let a = A(0)
let b = B(0.0)
person John Palmer    schedule 25.10.2013