टूट कोड का उदाहरण:मैं रिकॉर्ड अद्यतन नोटेशन में फ़ंक्शन पैरामीटर का उपयोग क्यों नहीं कर सकता?
data Foo = Foo {
bar :: (Int -> Int)
}
baz = Foo { bar i = i*3 }
क्यों यह संभव नहीं है?
टूट कोड का उदाहरण:मैं रिकॉर्ड अद्यतन नोटेशन में फ़ंक्शन पैरामीटर का उपयोग क्यों नहीं कर सकता?
data Foo = Foo {
bar :: (Int -> Int)
}
baz = Foo { bar i = i*3 }
क्यों यह संभव नहीं है?
यह काम करना चाहिए:
baz = Foo { bar = (\x -> x*3) }
यह सिर्फ एक वाक्यात्मक सीमा है - मुझे लगता है कि अगर इस सुविधा पर विचार किया गया है, यह होगा वहाँ सीधा विकल्प हैं क्योंकि अस्वीकार कर दिया गया है। इसके अलावा, अगर इसे समर्थित किया गया था, तो अगला प्रश्न यह होगा कि कई खंडों के साथ पैटर्न-मिलान क्यों नहीं, और समग्र रूप से यह भाषा को इतना अधिक लाभ के लिए बड़ा नहीं करेगा।
आप अपने द्वारा दिए गए विशिष्ट मामले के लिए baz = Foo { bar = \x -> x*3 }
का उपयोग कर सकते हैं या एक सहायक कार्य को परिभाषित कर सकते हैं।
यदि यह एक साधारण डिजाइन निर्णय था, तो क्या यह कहीं कहीं दस्तावेज है? – Vektorweg
क्षमा करें अगर मेरा जवाब थोड़ा भ्रामक है, तो यह कुछ ऐतिहासिक ज्ञान के बजाय मेरी शिक्षित अनुमान है। –
गणेश सही है, इसे सादगी के नाम पर माना और अस्वीकार कर दिया गया है। कुछ पुराने मेलिंग सूचियों को छोड़कर, हास्केल के डिज़ाइन में वास्तव में कोई रिकॉर्ड नहीं है। – augustss