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 उपयोगकर्ता-इनपुट किया गया है।

क्या हास्केल से परिचित कोई भी मुझे बता सकता है कि यह क्यों है? और मैं वांछित परिणाम कैसे प्राप्त करूं, जो

2 + 2 = 4

सही

< / Div>

रेखा बफरिंग आउटपुट बफ़र "फ़्लिकेड" नहीं है जब तक कि पाठ की एक पूरी पंक्ति लिखी नहीं जाती।

दो समाधान:

  1. मैन्युअल रूप से बफर फ्लश करें ( putStr बाद में hFlush stdout ।)
  2. बफरिंग बंद करें ( hSetBuffering stdout नो बफरिंग ।)

Comments

Popular posts from this blog

ios - How do I use CFArrayRef in Swift? -

eclipse plugin - Run java code error: Workspace is closed -

c - Error on building source code in VC 6 -