функция является объединением или типом записи? - PullRequest
0 голосов
/ 16 января 2019

Скотт имеет хороший разговор о моделировании предметной области в F # и представляет следующий слайд:

enter image description here

Является ли тип Deal типом записи или объединением?

Мой вопрос касается этой строки:

type Deal = Deck -> (Deck*Card)

Я не уверен, что понимаюэтот.Как мы можем просто создать функцию и поместить ее в тип?Я думал, что данные и функциональность должны быть отдельными?

1 Ответ

0 голосов
/ 16 января 2019

Ни.Это тип функции, точнее, псевдоним для типа функции, описанного сигнатурой Deck -> (Deck * Card).Псевдонимы работают так, что вы можете использовать их, чтобы прояснить ситуацию, где бы вы ни указывали тип самостоятельно, но если компилятор выводит тип, это всегда будет исходный несвязанный тип.

Так что в этом случае, где бы вы ни находилисьтип Deal дается, любая функция, которая принимает Deck и возвращает кортеж Deck и Card, будет принята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...