2013-01-05 14 views
13

मानक लाइब्रेरी printf फ़ंक्शन प्रदान करती है जो varadic होने का प्रबंधन करती है। हालांकि, यह नहीं करता है, संकलन-समय जांच कर रहा है कि तर्क प्रकार प्रारूप स्ट्रिंग से मेल खाते हैं या नहीं। इसके लिए निर्भर प्रकार की आवश्यकता होगी, और ऐसा लगता है कि यह भी लागू करना वाकई मुश्किल होगा! (आपको टाइप हस्ताक्षर का उपयोग करके संपूर्ण प्रारूप स्ट्रिंग को पार्स करना होगा ... yuck!)टाइप-सेफ प्रिंटफ

लेकिन प्रतिबिंब पर, अब मैं सोच रहा हूं ... क्या हम इसे टेम्पलेट हास्केल के साथ कर सकते हैं? वास्तव में, क्या किसी ने इसके लिए पहले से ही एक पुस्तकालय लिखा है ??

(ऐसा लगता है कि आप काफी आसानी से एक अर्ध quoter कि एक printf प्रारूप कल्पना पढ़ता है और आवश्यक एन आर्ग समारोह उत्पन्न करता है ... लिख सकता है)

उत्तर

8

हाँ, यह संभव है। हाँ, यह किया गया है। आप वास्तव में सवाल इस तरह के लिए hackage की जांच होनी चाहिए: http://hackage.haskell.org/package/Printf-TH

+1

दिलचस्प। मैं अब हैकेज को देख रहा हूं, और मुझे नहीं लगता ... ओह रुको, यह टेक्स्ट के नीचे नहीं है, यह उल्लिखित है। और वाह, यह सब दस्तावेज देखें ... :-( – MathematicalOrchid

+0

@MathematicalOrchid मैंने अभी स्रोत कोड की जांच की है और ऐसा लगता है कि फाइल हैडॉक मार्कअप का उपयोग करके दस्तावेज नहीं है। अजीब है कि कोई भी उस पैकेज को बनाए रखता है ... – Tarrasch

1

Printf-TH के अलावा, ऐसा लगता है कि printf-mauke कुछ वें भी एक बाद का विचार के रूप में में फेंक दिया गया है ... कोई अन्य उदाहरण?

6

यदि आप स्वीकार करना चाहते हैं कि "प्रारूप स्ट्रिंग" वास्तव में एक स्ट्रिंग नहीं है, तो आप सीधे प्रिंटिंग-जैसे फ़ंक्शन को हास्केल में भी कार्यान्वित कर सकते हैं।

उदाहरण के लिए, राल्फ हिनज द्वारा एक पेपर में, जिसे "Formatting: a class act" कहा जाता है, का वर्णन किया गया है। हैकेज पर, मुझे केवल xformat पैकेज मिल सकता है जो इस दृष्टिकोण के समान कुछ लागू करता है।

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