मैं a programming contest और one of the problems में भाग ले रहा हूं 'इनपुट डेटा में दशमलव प्रारूप में एक आंशिक संख्या शामिल है: 0.75
एक उदाहरण है।हास्केल में तर्कसंगत में दशमलव अंश को कैसे पार्स करें?
Double
में पार्सिंग छोटा है (मैं इसके लिए read
का उपयोग कर सकता हूं), लेकिन सटीकता का नुकसान दर्दनाक है। Double
तुलना (मुझे नहीं था) के साथ बहुत सावधान रहने की आवश्यकता है, जो अनावश्यक लगता है क्योंकि किसी के पास Rational
डेटा प्रकार हैस्केल में है।
इसका उपयोग करने का प्रयास करते समय, मैंने पाया है कि read
Rational
को निम्नलिखित प्रारूप में एक स्ट्रिंग प्रदान करनी है: numerator % denominator
, जो कि, जाहिर है, मेरे पास नहीं है।
तो, सवाल यह है:
Rational
में एक अंश के एक दशमलव प्रतिनिधित्व पार्स करने के लिए सबसे आसान तरीका क्या है?
बाह्य निर्भरताओं की संख्या को भी ध्यान में रखा जाना चाहिए, क्योंकि मैं ऑनलाइन जज में अतिरिक्त पुस्तकालय स्थापित नहीं कर सकता।
धन्यवाद! यह काम। – Rotsor
यदि आप नकारात्मक संख्याएं पढ़ने में सक्षम होना चाहते हैं तो आप 'readSigned' जोड़ना चाहेंगे:' fst। हेड $ readSigned readFloat "-3.14" :: तर्कसंगत ' – newacct