Ответ 1
Есть два варианта:
let max (numbers:int list) = ...
let max (numbers:list<int>) = ...
В первой версии используется синтаксис, который наследуется от OCaml (и часто используется для примитивных типов F #, таких как списки). Вторая версия использует синтаксис .NET(и чаще используется для типов .NET или при написании объектно-ориентированного кода в F #). Однако оба они означают одно и то же.
В любом случае форма аннотации типа всегда (<something> : <type>)
, где <something>
является либо шаблоном (как в списке параметров), либо выражением. Это означает, что int list
и list<int>
- это просто имена типов. F # Interactive печатает тип, если вы вводите какое-то значение, поэтому вы можете использовать его, чтобы узнать больше о том, как написаны имена типов:
> [1;2;3]
val it : int list = [ 1; 2; 3 ]