Почему этот Дискриминационный Союз не принимает дело типа Set? - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь создать новый Set тип:

type MySet<'t> = | List of list<'t>
                 | Sequence of seq<'t>
                 | Array of 't []

Это работает, но если я пытаюсь добавить регистр для самого типа Set, я получаю сообщение: a type parameter is missing a constraint 'when t: comparison'

type MySet<'t> = | List of list<'t>
                 | Sequence of seq<'t>
                 | Array of 't []
                 | Set of Set<'T>

Полагаю, это легко исправить, но я не смог этого сделать, хотя и попробовал пару вещей.

1 Ответ

0 голосов
/ 04 мая 2018

Реализация структуры данных Set<'t> требует, чтобы ее значения сравнивались, поэтому, если ваш тип содержит значения, которые можно поместить в набор, вы должны предоставить такое же ограничение типа:

type MySet<'t when 't : comparison> =
    | List of list<'t>
    | Sequence of seq<'t>
    | Array of 't []
    | Set of Set<'t>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...