io - Haskell - putStr vs putStrLn and instruction order -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 3 जवाब
मान लें कि हमारे पास कम है हैकेल प्रोग्रामम:
मुख्य = do putStr "2 + 2 =" x & lt; - readLn यदि x == 4 तब डाल एसटीआरएलएन "सही" और putStrLn "गलत"
यह किस उत्पादन का उत्पादन करता है?
4
2 + 2 = सही
अब दूसरे के पास:
main = do putStrLn "2 + 2 =" x
उस का उत्पादन
2 + 2 =
4
सही
जहां बोल्ड 4 उपयोगकर्ता-इनपुट किया गया है।
क्या हास्केल से परिचित कोई भी मुझे बता सकता है कि यह क्यों है? और मैं वांछित परिणाम कैसे प्राप्त करूं, जो
< / Div>2 + 2 = 4
सही
रेखा बफरिंग आउटपुट बफ़र "फ़्लिकेड" नहीं है जब तक कि पाठ की एक पूरी पंक्ति लिखी नहीं जाती।
दो समाधान:
- मैन्युअल रूप से बफर फ्लश करें (
putStr
बाद मेंhFlush stdout
।) - बफरिंग बंद करें (
hSetBuffering stdout नो बफरिंग
।)
Comments
Post a Comment