क्या हैकेल में कोई फ़ंक्शन है जो int से float में परिवर्तित होता है, और char से float में परिवर्तित होता है?हास्केल int फ्लोट और चार फ्लोट करने के लिए int
मुझे पता है कि एक ऐसा कार्य है जो चार से int और int से char में परिवर्तित होता है।
क्या हैकेल में कोई फ़ंक्शन है जो int से float में परिवर्तित होता है, और char से float में परिवर्तित होता है?हास्केल int फ्लोट और चार फ्लोट करने के लिए int
मुझे पता है कि एक ऐसा कार्य है जो चार से int और int से char में परिवर्तित होता है।
इस तरह के प्रश्नों का उत्तर hoogle के साथ दिया जा सकता है।
digitToInt :: Char -> Int
एक समारोह के लिए अपनी जरूरत हालांकि: -
उदाहरण के लिए, के लिए Hoogle "चार> इंट" और पहले समारोह में यह करना होगा सूचीबद्ध (ord
, अन्य उत्तर में उल्लेख किया है, दूसरा परिणाम है) :: Char -> Floatread
(तीसरी नीचे परिणाम) या digitToInt का एक संयोजन और एक समारोह :: Int -> Float का उपयोग कर जनादेश करता है:
digitToFloat = toEnum . digitToInt
मुझे पता था कि digitToInt जैसे फ़ंक्शन थे, लेकिन मैं इसे देखने के लिए बहुत आलसी था। धन्यवाद! –
आप का प्रयास किया:
intToFloat :: Int -> Float
intToFloat n = fromInteger (toInteger n)
fromIntegral
इंट से परिवर्तित कर देंगे फ्लोट करने के लिए।
फ़्लोट करने के लिए चार के लिए, यह निर्भर करता है। आप (अब के लिए अनदेखी यूनिकोड) एक चार की ASCII मूल्य प्राप्त करना चाहते हैं, Data.Char.ord का उपयोग करें:
Prelude Data.Char> fromIntegral (ord '2') :: Float
50.0
आप एक चार के अंकों को पढ़ने के लिए चाहते हैं, यानी '2'
मूल्य 2
हो जाता है, आप ऐसा कर सकते हैं:
char2float :: Char -> Float
char2float n = fromInteger (read [n])
Prelude Data.Char> char2float '2'
2.0
आप इस का एक बहुत तैयार करने वाले हैं, तो आप एक वास्तविक पार्स लाइब्रेरी का उपयोग वास्तविक त्रुटि हैंडलिंग पाने के लिए सोच सकते हैं।
आप 'char2float सिर्फ कर सकते हैं n = [n] पढ़ '। 'से इंटेगर 'की कोई ज़रूरत नहीं है। – sepp2k
अगर मैं यह सही है, तो आप इन उद्देश्यों के लिए पढ़ें typeclass उपयोग कर सकते हैं मिलता है। और इसका मतलब है कि आप कुछ बुनियादी प्रकारों को कुछ अन्य मूल प्रकारों में परिवर्तित कर सकते हैं।
एक फ्लोट करने के लिए इंट से परिवर्तित:
Prelude> 1::Float
1.0
लेकिन मैं नहीं जानता कि चार से परिवर्तित फ्लोट करने के लिए जिसका अर्थ है - हो सकता है [चार] फ्लोट या स्ट्रिंग के लिए फ्लोट करने के लिए? वैसे भी:
Prelude> read("1")::Float
1.0
इस लिंक चेक आउट: http://book.realworldhaskell.org/read/using-typeclasses.html
भी देखें http://stackoverflow.com/questions/3968265/integer-to-float –