f# - How to write a new type that is compatible with Array.sum? -


  प्रकार फू (...) = ... चलो एक = सरणी। बनाएँ 10 (नया फू () ) Sum = Array.sum a  

आपको उन कुछ सदस्यों को जोड़ना होगा जो गणना करने के लिए sum फ़ंक्शन द्वारा उपयोग किया जाता है:

  type Foo (value: int) = सदस्य x.Value = value // दो सदस्यों को ' Array.sum 'स्थिर सदस्य (+) (a: Foo, b: Foo) = Foo (a.Value + b.Value) स्थिर सदस्य शून्य = फू (0) //' Array.sum 'के लिए आवश्यक नहीं है, लेकिन अनुमति देता है 'एरे। एवरेज' स्टेटिक सदस्य डिवाइडबीआईआईएनटी (ए: फू, एन: एट) = फू (ए.वैल्यू / एन)  

sum फ़ंक्शन चालू होता है शून्य द्वारा लौटाया गया मान और उसके बाद ओवरलोड किए गए + ऑपरेटर ( औसत का उपयोग करके Foo के मान जोड़ता है, फिर परिणाम को विभाजित करता है एक पूर्णांक):

  चलो एक = सरणी। 10 (मज़ा n - & gt; फ़ू (एन)) sum = array.um sum.value // रिटर्न 45 < / कोड> 

Comments