Integer যত বড় সংখ্যাই হোক না কেন, আপনার মেশিনের মেমোরির সীমা পর্যন্ত যেকোনো সংখ্যা ধরে রাখতে পারে; অন্যদিকে Int বলতে ৩২ বা ৬৪ বিটে প্রকাশ করা যায় এমন ধনাত্মক ও ঋণাত্মক ইন্টিজারের সেটকে বোঝায় (অন্তত -2^29 থেকে 2^29 পর্যন্ত নিশ্চিত)।
Float বাস্তব সংখ্যার সেটের সাথে মেলে, যা কম্পিউটারের নির্ভুলতার সীমার মধ্যে সীমাবদ্ধ।
সংখ্যার ওপর সংজ্ঞায়িত অপারেশনগুলো সাধারণত এক টাইপ বা অন্যটির ওপর কাজ করে, কিন্তু দুটিতেই নয়।
Float আর Integer-এর মধ্যে রূপান্তরের ফাংশনগুলোর মধ্যে আছে, অন্যদের মধ্যে, 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
আপনি আন্তর্জাতিক স্বেচ্ছাসেবকদের নিয়ে গঠিত একটি ফায়ারফাইটার সংস্থার অংশ। দলটি আন্তর্জাতিক হওয়ায়, জ্বলন্ত ভবনের ভেতরের তাপমাত্রা আন্দাজ করার সময় ফারেনহাইট আর সেলসিয়াসের মধ্যে রূপান্তর করতে গিয়ে গত কয়েকটি কলে মূল্যবান সময় নষ্ট হয়েছে। সময় আর মানুষের জীবন বাঁচাতে আপনি সিদ্ধান্ত নিলেন, আপনার আন্তর্জাতিক দলের জন্য ফারেনহাইট ও সেলসিয়াসের মধ্যে স্বয়ংক্রিয়ভাবে রূপান্তর করার একটি প্রোগ্রাম বানাবেন।
ফারেনহাইটে দেওয়া একটি Integer তাপমাত্রাকে তার সমতুল্য সেলসিয়াসের Float-এ, নিকটতম একশতাংশ পর্যন্ত রাউন্ড করে, রূপান্তর করতে tempToC ফাংশনটি ইমপ্লিমেন্ট করুন।
সেলসিয়াস ডিগ্রিতে তাপমাত্রা সংজ্ঞায়িত করা হয় এভাবে: T(°C) = (T(°F) - 32) / 1.8।
> tempToC 32
0.00
সেলসিয়াসে দেওয়া একটি Float তাপমাত্রাকে তার সমতুল্য ফারেনহাইটে রূপান্তর করতে tempToF ফাংশনটি ইমপ্লিমেন্ট করুন।
নিরাপত্তার কারণে, ফলাফলটি রাউন্ড আপ করে পরবর্তী সর্বোচ্চ Integer-এ নিন।
ফারেনহাইট ডিগ্রিতে তাপমাত্রা সংজ্ঞায়িত করা হয় এভাবে: T(°F) = T(°C) × 1.8 + 32।
> tempToF 4
40
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।