Integer कितनी भी बड़ी संख्या रख सकता है, आपकी मशीन की मेमोरी की सीमा तक। इसके विपरीत Int उन धनात्मक और ऋणात्मक पूर्णांकों के समूह से मेल खाता है जिन्हें 32 या 64 बिट में व्यक्त किया जा सकता है (कम से कम -2^29 से 2^29 तक की गारंटी)।
Float वास्तविक संख्याओं के समूह से मेल खाता है, जो कंप्यूटर की परिशुद्धता तक सीमित है।
संख्याओं पर परिभाषित ऑपरेशन आम तौर पर किसी एक टाइप पर ही काम करते हैं, दोनों पर नहीं।
Float और Integer के बीच बदलने वाले कई फंक्शन हैं, जिनमें toFloat और ceiling भी शामिल हैं: toFloat Int/Integer को Float में बदलता है और ceiling एक Float को Int में बदलता है।
किसी पूर्णांक टाइप (Int या Integer) को किसी अन्य संख्यात्मक टाइप में बदलने के लिए fromIntegral फंक्शन इस्तेमाल किया जाता है।
लक्ष्य टाइप अपने आप अनुमानित हो जाता है।
उदाहरण के लिए:
n :: Integer
n = 6
x :: Float
x = fromIntegral n --> x = 6.0
m :: Int
m = 7
y :: Double
y = fromIntegral m --> y = 7.0
आप अंतरराष्ट्रीय स्वयंसेवकों से बने एक दमकल संगठन का हिस्सा हैं। टीम के अंतरराष्ट्रीय होने के कारण, पिछली कुछ कॉलों में जलती हुई इमारतों के अंदर तापमान का अंदाज़ा लगाते समय फारेनहाइट और सेल्सियस के बीच बदलाव करने में बहुत कीमती समय बर्बाद हुआ है। समय और लोगों को बचाने के लिए आप अपनी अंतरराष्ट्रीय टीम के लिए एक ऐसा प्रोग्राम बनाने का निर्णय लेते हैं, जो फारेनहाइट और सेल्सियस के बीच अपने आप बदलाव करेगा।
tempToC फंक्शन बनाइए, जो फारेनहाइट में दिए गए Integer तापमान को सेल्सियस में उसके बराबर Float में बदलता है और परिणाम को दशमलव के दो अंकों तक पूर्णांकित करता है।
डिग्री सेल्सियस में तापमान इस तरह परिभाषित किया जाता है: T(°C) = (T(°F) - 32) / 1.8.
> tempToC 32
0.00
tempToF फंक्शन बनाइए, जो सेल्सियस में दिए गए Float तापमान को फारेनहाइट में उसके बराबर मान में बदलता है।
सुरक्षा कारणों से परिणाम को ऊपर की ओर पूर्णांकित करके अगले सबसे बड़े Integer तक ले जाइए।
डिग्री फारेनहाइट में तापमान इस तरह परिभाषित किया जाता है: T(°F) = T(°C) × 1.8 + 32.
> tempToF 4
40
Exercism पर साइन अप कीजिए और Haskell को 107 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।