में stdout करने के लिए एक आईओ स्ट्रिंग लिखना हम एक ऐसे फ़ंक्शन के आउटपुट को कैसे मुद्रित करते हैं जो stoout पर आईओ स्ट्रिंग देता है? मैं शो या प्रिंट का उपयोग करने में सक्षम नहीं हूं।हास्केल
हास्केल
उत्तर
आप समारोह foo :: Int -> IO String
(उदाहरण के लिए) का परिणाम प्रिंट करना चाहते हैं, तो आप
main = do
str <- foo 12
putStrLn str
कर सकते हैं या, do-अंकन के बिना,
main = foo 12 >>= putStrLn.
do-अंकन है दूसरे के लिए वाक्यात्मक चीनी, जो मौलिक (>>=)
Combinator का उपयोग करता है, जो प्रकार है
(>>=) :: Monad m => m a -> (a -> m b) -> m b
IO
Monad
कक्षा का एक उदाहरण है, तो आप इसे यहां उपयोग कर सकते हैं।
foo :: Int -> IO String
foo 12 :: IO String
putStrLn :: String -> IO()
(foo 12) >>= putStrLn :: IO()
हम एक समारोह है कि stdout में एक आईओ स्ट्रिंग रिटर्न के उत्पादन में कैसे प्रिंट करूं?
ठीक है देखते हैं। यहाँ एक समारोह है कि एक आईओ स्ट्रिंग रिटर्न है: (! लेकिन फिर भी एक समारोह)
dumbFunction :: a -> IO String
dumbFunction x = getLine
dumbFunction
एक गूंगा कार्य है। यह इसके इनपुट को अनदेखा करता है, और उसके बाद getLine
देता है, जिसमें IO String
है।
तो आप मुझे बताएं, आप getLine :: IO String
कैसे प्रिंट करते हैं? जवाब है, आप नहीं करते! यही वह है जिसे हम "आईओ एक्शन" कहते हैं। ध्यान दें कि एक आईओ क्रिया एक फ़ंक्शन नहीं है, क्योंकि यह इनपुट लेता है। (हालांकि, आईओ क्रियाएं, अच्छी तरह से, आईओ ऑपरेशंस जैसे getLine
के रूप में पढ़ने के लिए इनपुट प्राप्त कर सकती हैं। लेकिन इसे "फ़ंक्शन" नहीं माना जाता है क्योंकि यह किसी भी पारंपरिक इनपुट को स्वीकार नहीं करता है)
तो प्रिंटिंग के बजाय कार्रवाई स्वयं, शायद आप रन कार्रवाई करना चाहते हैं, और फिर परिणाम प्रिंट करें। ऐसा किया जा सकता है क्योंकि डैनियल फिशर ने वर्णन किया है (<-
के साथ, जिसे "रन" ऑपरेटर के रूप में माना जा सकता है)।
- 1. हास्केल
- 2. हास्केल
- 3. हास्केल
- 4. हास्केल
- 5. हास्केल
- 6. हास्केल
- 7. हास्केल
- 8. हास्केल
- 9. हास्केल
- 10. हास्केल
- 11. हास्केल
- 12. हास्केल
- 13. हास्केल
- 14. हास्केल
- 15. हास्केल
- 16. हास्केल
- 17. हास्केल:
- 18. हास्केल
- 19. हास्केल
- 20. हास्केल
- 21. हास्केल
- 22. हास्केल
- 23. हास्केल
- 24. हास्केल
- 25. हास्केल
- 26. हास्केल
- 27. हास्केल
- 28. हास्केल
- 29. हास्केल
- 30. हास्केल