la respuesta de CMS es definitivamente correcta. Aquí hay solo una adición que también puede ser útil. En F #, a menudo desea escribir el tipo simplemente usando propiedades inmutables. Cuando se utiliza la sintaxis de "inicializador de objeto", las propiedades deben ser mutables. Una alternativa en F # es usar argumentos con nombre, lo que le brinda una sintaxis similar, pero mantiene las cosas inmutables:
type Person(name:string, ?birthDate) =
member x.Name = name
member x.BirthDate = defaultArg birthDate System.DateTime.MinValue
Ahora podemos escribir:
let p1 = new Person(name="John", birthDate=DateTime.Now)
let p2 = new Person(name="John")
El código requiere que especifiques el nombre, pero cumpleaños es un argumento opcional con algún valor predeterminado.