2012-05-25 15 views
11

क्या रिकॉर्ड के लिए struct-map है? यदि नहीं, तो क्या मुझे एक संरचना का उपयोग करना चाहिए (दस्तावेज़ों को ढांचे के उपयोग को हतोत्साहित करना चाहिए)?मानचित्र से क्लोजर रिकॉर्ड कैसे पॉप्युलेट करें?

शायद मैं गलत चीज़ पूरी तरह से कर रहा हूं? मेरे पास एक जटिल कार्य है जो वर्तमान में विकल्पों का नक्शा लेता है। मैं यह स्पष्ट करने की कोशिश कर रहा हूं कि कौन से विकल्प मूल्य स्वीकार्य/उपयोग किए जाते हैं (इसे रिकॉर्ड के साथ बदलकर)। और अब मैं उस कोड को इंटरफ़ेस करना चाहता हूं जिसमें यह जानकारी नक्शे में है (और जिसमें रिकॉर्ड में डेटा का सुपरसेट होता है)।

उत्तर

19

"दस्तावेज़" के लिए रिकॉर्ड्स का उपयोग करने की अनुशंसा नहीं की जाती है - सादे पुराने नक्शे अधिक लचीला, सरल और आसान होते हैं। प्रलेखन के लिए, आप केवल एक डॉकस्ट्रिंग, या एक टिप्पणी जोड़ सकते हैं, या (defn make-whatever [thing1 thing2]) जैसे फ़ंक्शन बना सकते हैं।

यदि आप अभी भी एक रिकॉर्ड चाहते हैं, तो आप क्लोजर संस्करण 1.3 या उच्चतर का उपयोग कर रहे हैं या नहीं, इस पर निर्भर करते हुए आपके पास कुछ विकल्प हैं। यदि ऐसा है, तो (defrecord Whatever ...) भी map->Whatever फ़ंक्शन को परिभाषित करता है, और ->Whatever फ़ंक्शन जो स्थितित्मक तर्क लेता है। यदि नहीं, तो आप (into (Whatever. nil nil nil) some-map) लिख सकते हैं (रिकॉर्ड प्रकार के लिए सही संख्या में नाइल्स गुजर रहे हैं)।

संबंधित मुद्दे