show
समारोह है कि कार्यों कि Show
typeclass के सदस्य हैं पर परिभाषित किया जाता है (यदि आप नहीं जानते कि एक typeclass है, यह एक OOP इंटरफ़ेस की तरह थोड़े है)।
डिफ़ॉल्ट रूप से, फ़ंक्शन टाइपक्लास के सदस्य नहीं हैं, इसलिए हम उन्हें प्रिंट नहीं कर सकते हैं।
हम इसे
instance Show (a -> b) where
show f = "Unicorns!!"
साथ typeclass के एक सदस्य बना सकता है, लेकिन यहाँ हम पता है क्यों यह डिफ़ॉल्ट रूप से लागू नहीं है। कार्यों का एक सरल, स्पष्ट प्रतिनिधित्व नहीं है और हैकेल अनुमान लगाना नहीं चाहता है, और इस प्रकार कोई उदाहरण नहीं है।
एकमात्र "अनुमत" उदाहरण एक ऐसा होगा जो वास्तव में कार्य को प्रिंट करता है, लेकिन इसके लिए वास्तविक भाषा परिवर्तन की आवश्यकता होगी, यानी यह संकलक में कड़ी मेहनत की जाएगी, जो कि कुछ मामलों के लिए उपयुक्त नहीं है यह उपयोगी हो सकता है।
इसके अलावा अधिक यह एक nontrivial संकलक परिवर्तन है, हास्केल संकलित किया गया है जो f = g
और
f = g
की तरह कुछ के बीच मतभेदों को पूरी तरह से इस पर खो रहे हैं मतलब है। लेकिन आप निश्चित रूप से अपने समारोह के प्रतिनिधित्व में चाहते हैं। इस वजह से, आपको कार्यक्रम के माध्यम से इस स्ट्रिंग के चारों ओर घूमना होगा। यह निश्चित रूप से नहीं है कि आप बाइनरी में क्या चाहते हैं।
यदि आप वाकई इसे यूनिकोरन्स प्रिंट करना चाहते हैं !! हालांकि, नि: शुल्क महसूस करें।
उस समारोह के लिए आप 'स्ट्रिंग' का उत्पादन करने की अपेक्षा करेंगे? –