ghc
के हाल के संस्करण आपको चेतावनी देंगे कि एक पूर्णांक अक्षर किसी दिए गए प्रकार की सीमा के बाहर है या नहीं। उदाहरण के लिए:क्या कोई हस्ताक्षरित पूर्णांक प्रकार है जो नकारात्मक अक्षर के बारे में चेतावनी देगा?
$ ghci
>>> let x = 330492039485 :: Data.Word.Word8
<interactive>:2:9: Warning:
Literal 330492039485 is out of the GHC.Word.Word8 range 0..255
हालांकि, ghc
Data.Word
प्रकार के लिए नकारात्मक सांख्यिक शाब्दिक के बारे में चेतावनी नहीं होंगे। इसके बजाय, यह underflows (जानबूझकर, प्रलेखन के अनुसार):
>>> let x = -1 :: Data.Word.Word8
>>> x
255
वहाँ किसी भी प्रकार है कि नकारात्मक शाब्दिक के बारे में चेतावनी या वहाँ एक रास्ता मैं चेतावनी दी है कि मेरी स्वयं के कस्टम प्रकार बना सकते हैं होगा रहे हैं?
Data.Word के स्रोत को देखते हुए, ऐसा लगता है कि संकलक कंपाइलर में अंतर्निहित हैं। छिपे हुए पैकेज ghc में 'Panic' मॉड्यूल है जो ऐसा लगता है कि यह चेतावनियों को उत्सर्जित कर सकता है, लेकिन यह एक बहुत ही इष्टतम समाधान की तरह नहीं लगता है। – bheklilr
मैं हाल ही में इंटीजर का एक या दो 'उपप्रकार' चाहता हूं, अर्थात् प्राकृतिक और सकारात्मक (और सकारात्मक मेरे लिए वैकल्पिक है), जो आदर्श रूप से उनके कार्यान्वयन के लिए जीएमपी में कार्यों के 'mpn_' परिवार का उपयोग करेगा। हमारे पास टाइप स्तर पर 'नेट' है लेकिन मूल्य स्तर पर कुछ नहीं है, और यह मुझे अजीब के रूप में मारता है, इसलिए मैं प्रतिक्रियाओं पर नजर रखूंगा! – yatima2975
आपके प्रश्न के लिए, एक भेदभाव किया गया है: क्या 'वर्ड 8' पूर्णांक मॉड्यूलो 256 का प्रतिनिधित्व करता है (इस मामले में तथ्य यह है कि '-1 == 255' पूरी तरह से उचित है), या यह सेट ' {0, ..., 255} '(किस मामले में' -1 == 255' बीमार टाइप किया जाना चाहिए)? यह गन्दा 'न्यू' डिजाइन में भी जुड़ा हुआ है; '(-)', 'negate' और'Interger' वहां नहीं होना चाहिए (अकेले 'abs' और' signum'!), लेकिन यह कीड़े का एक अलग प्रकार है ... – yatima2975