2011-02-07 20 views
6

डिबगिंग उद्देश्यों के लिए एक फ़ंक्शन लिखना मैं ओकैमल में एक फ़ंक्शन रखना चाहता हूं जो मनमाने ढंग से टाइप करने के लिए परिवर्तित हो जाता है, वर्तमान में डीबगर में एक है, लेकिन यह एक अच्छा होगा।टाइप 'ए -> स्ट्रिंग

सेक्सप्लिब लाइब्रेरी सही होगी, लेकिन तथ्य यह है कि मैं with sexp जोड़ने के लिए सभी प्रकारों को संशोधित नहीं कर सकता, और मैं camlp4 का उपयोग नहीं कर सकता।

क्या ऐसा कोई कार्य है? (यह उत्पादन कोड पर नहीं होगा इसलिए मैं गंदे समाधान स्वीकार करता हूं)

हास्केल के Show टाइपक्लास की तरह कुछ ऐसा ही होगा जो मेरा मतलब है।

अपना समय

+0

> हास्केल की 'शो' टाइप क्लास वास्तव में अच्छी है, लेकिन ओकैमल में टाइप क्लास नहीं हैं ... ओकैमल में निकटतम समकक्ष एक शो विधि के साथ एक स्पष्ट वर्ग प्रकार होगा। शायद आपके मन में क्या नहीं है। –

उत्तर

5

Batteries Included में Std मॉड्यूल एक dump समारोह जो पठनीय तार करने के लिए मनमाने ढंग से प्रकार धर्मान्तरित प्रदान करता है के लिए धन्यवाद। यह कुछ हद तक सीमित है - क्योंकि यह प्रकारों के बारे में नहीं जानता है, यह रचनाकारों को वेरिएंट प्रकारों के लिए सही तरीके से प्रिंट नहीं कर सकता है और उन्हें संख्याओं के साथ बदल देता है - लेकिन यह अभी भी बहुत उपयोगी हो सकता है। चूंकि प्रकार की जानकारी रनटाइम पर उपलब्ध नहीं है, यह उतना ही अच्छा है जितना आप कर सकते हैं। बेहतर प्रस्तुतियों को प्राप्त करने के लिए डीबगर और अपरिवर्तनीय उपयोग कंपाइलर ट्रिकरी, लेकिन सामान्य पुस्तकालय में असंभव नहीं होने पर यह मुश्किल है।

मुझे याद है कि कहीं और अधिक परिष्कृत डंपिंग लाइब्रेरी को भी देख रहा है, लेकिन मुझे याद नहीं है।

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