відповідь від CMS, безумовно, правильна. Ось лише одне доповнення, яке також може бути корисним. У F # вам часто хочеться записати тип просто за допомогою незмінних властивостей. Під час використання синтаксису "ініціалізатор об'єктів" властивості мають бути зміненими. Альтернативою F # є використання названих аргументів, що дає вам аналогічний синтаксис, але зберігає речі незмінні:
type Person(name:string, ?birthDate) =
member x.Name = name
member x.BirthDate = defaultArg birthDate System.DateTime.MinValue
Тепер ми можемо написати:
let p1 = new Person(name="John", birthDate=DateTime.Now)
let p2 = new Person(name="John")
Код вимагає вказати ім’я, але день народження - необов'язковий аргумент з деяким значенням за замовчуванням.