a resposta do CMS é definitivamente correta. Aqui está apenas um acréscimo que também pode ser útil. Em F #, você geralmente deseja escrever o tipo apenas usando propriedades imutáveis. Ao usar a sintaxe do "inicializador de objeto", as propriedades devem ser mutáveis. Uma alternativa em F # é usar argumentos nomeados, que fornecem uma sintaxe semelhante, mas mantém as coisas imutáveis:
type Person(name:string, ?birthDate) =
member x.Name = name
member x.BirthDate = defaultArg birthDate System.DateTime.MinValue
Agora podemos escrever:
let p1 = new Person(name="John", birthDate=DateTime.Now)
let p2 = new Person(name="John")
O código requer que você especifique o nome, mas aniversário é um argumento opcional com algum valor padrão.