CMS से उत्तर निश्चित रूप से सही है। यहाँ सिर्फ एक जोड़ है जो सहायक भी हो सकता है। 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")
कोड आपको नाम निर्दिष्ट करने की आवश्यकता है, लेकिन जन्मदिन कुछ डिफ़ॉल्ट मान के साथ एक वैकल्पिक तर्क है।