यह समारोह:अंक बनाम इंटीग्रल
hola :: (Integral a) => a -> String
hola 1 = "OK"
hola _ = "asdf"
ठीक काम करता है। लेकिन इस एक:
hola :: (Num a) => a -> String
hola 1 = "OK"
hola _ = "asdf"
संकलित नहीं किया जा सकता: "अनुमान नहीं किया जा सका (Eq क) शाब्दिक` 1 'से उत्पन्न होने वाली "
मैं वास्तव में यह नहीं मिलता है। मैं एक ट्यूटोरियल जहां यह कहा
"इंटीग्रल भी एक अंकीय typeclass है पढ़ रहा हूँ। Num वास्तविक संख्या और अभिन्न नंबर सहित सभी नंबरों को भी शामिल है, इंटीग्रल केवल अभिन्न (पूरे) संख्या भी शामिल है। इस typeclass में हैं इंट और पूर्णांक। " http://learnyouahaskell.com/types-and-typeclasses
मैं नम का उपयोग क्यों नहीं कर सकता?
पूर्वाग्रह संस्करण में काम करना :) धन्यवाद !! मुझे लगता है कि यह परिवर्तन इस भाषा को थोड़ा उलझन में डालता है .. :( – user1726613
ठीक है, यह निश्चित रूप से संक्रमण अवधि में बहुत भ्रम (और पैकेजों का टूटना) का कारण बन जाएगा। लेकिन समग्र सर्वसम्मति यह थी कि लाभ हानि से अधिक है (पुरानी 'ईक 'और' शो' आवश्यकताओं को छोड़कर समझदार 'संख्या' उदाहरणों के बारे में ऐसी चीजों के लिए अधिक नकली' ईक' और 'शो' उदाहरण नहीं हैं। वही (mutatis mutandis) ' 'बिट्स' से न्यूम सुपरक्लास। सौभाग्य से, ब्रेकेज बाधाओं को जोड़कर _backward-compatibly_ तय किए गए हैं। –
बहुत धन्यवाद डैनियल, आपके उत्तर बहुत उपयोगी थे। इसलिए नए कंपाइलर के साथ मुझे यह सुनिश्चित करना होगा कि बाधा में एक ईक शामिल है उदाहरण कम से कम तुलना करने के लिए उदाहरण। – user1726613