recent exchange के आधार पर, मुझे संकलन-समय प्रकार की सुरक्षा सुनिश्चित करने के लिए कुछ कोड उत्पन्न करने के लिए टेम्पलेट हास्केल का उपयोग करने के लिए आश्वस्त किया गया है।हास्केल रिकॉर्ड के फील्ड नामों और प्रकारों का आत्मनिरीक्षण
मुझे रिकॉर्ड फ़ील्ड नामों और प्रकारों का आत्मनिरीक्षण करने की आवश्यकता है। मैं समझता हूं कि constrFields . toConstr :: Data a => a -> [String]
का उपयोग करके मैं get field names कर सकता हूं। लेकिन मुझे फील्ड नामों से अधिक की जरूरत है, मुझे उनके प्रकार को जानने की जरूरत है। उदाहरण के लिए, मुझे Bool
प्रकार वाले फ़ील्ड के नामों को जानने की आवश्यकता है।
मैं एक समारोह f :: a -> [(String, xx)]
जहां a
रिकॉर्ड है कैसे निर्माण करते हैं, String
क्षेत्र का नाम है और xx
फ़ील्ड प्रकार है?
यही वही है जो मैं ढूंढ रहा हूं। मैंने आपका उदाहरण निम्नलिखित पर उबाल दिया: 'introspect n = reify n >> = stringE। show'। मार्गदर्शन के लिए धन्यवाद! – Ana