मैंने हास्केल रिकॉर्ड के साथ कुछ मुद्दों के बारे में पढ़ा है, विशेष रूप से, तथ्य यह है कि एक ही मॉड्यूल में दो तत्वों का एक ही नाम नहीं हो सकता है।हास्केल रिकॉर्ड, क्लीनर दृष्टिकोण?
मैं समझता हूँ कि आप इस के आसपास अलग मॉड्यूल होने से काम कर सकते हैं, लेकिन मैं ऐसा नहीं करना चाहता था और इसके बजाय इस दृष्टिकोण की कोशिश की:
class HasX a where
x :: a -> X
data D1 = D1 { d1_x :: X, ... }
instance HasX D1 where
x = d1_x
data D2 = D2 { d2_x :: X, ... }
instance HasX D2 where
x = d2_x
(यह केवल करता है, हो जाता है नहीं सेट, मैं था निश्चित रूप से सेट करने के लिए और कोड लिखने की जरूरत है)।
हालांकि, ऐसा लगता है कि यह सब कुछ के लिए वर्ग और आवृत्ति घोषणाएं बॉयलरप्लेट की तरह लगती हैं जो टेम्पलेट हैकेल या कुछ और का उपयोग करके समाप्त होनी चाहिए।
क्या जीएचसी के लिए कोई पुस्तकालय या विस्तार है जो इस तरह के दृष्टिकोण को लिखने के लिए कम गन्दा बनाता है?
हाँ, ओह। फिक्स्ड। – Clinton
यह उससे थोड़ा अधिक जटिल है क्योंकि दोनों फ़ील्ड में एक ही प्रकार नहीं हो सकता है। – augustss
मेरे उद्देश्यों के लिए, मान लें कि उसी नाम वाले फ़ील्ड एक ही प्रकार के हैं। मेरे पास अलग-अलग प्रकार वाले नाम वाले फ़ील्ड नहीं होंगे। – Clinton