CMS'nin cevabı kesinlikle doğrudur. İşte yardımcı olabilecek sadece bir ekleme. F # 'da genellikle türü yalnızca değişmez özellikleri kullanarak yazmak istersiniz. "Nesne başlatıcı" sözdizimi kullanılırken, özelliklerin değiştirilebilir olması gerekir. F # 'da bir alternatif, size benzer bir sözdizimi sağlayan, ancak şeyleri değişmez tutan adlandırılmış bağımsız değişkenleri kullanmaktır:
type Person(name:string, ?birthDate) =
member x.Name = name
member x.BirthDate = defaultArg birthDate System.DateTime.MinValue
Şimdi yazabiliriz:
let p1 = new Person(name="John", birthDate=DateTime.Now)
let p2 = new Person(name="John")
Kod, adı belirtmenizi gerektirir, ancak doğum günü, bazı varsayılan değerleri olan isteğe bağlı bir bağımsız değişkendir.