में प्रिंट और putStrLn के बीच अंतर मैं उलझन में हूं। मैं print
का उपयोग करने का प्रयास करता हूं, लेकिन मुझे पता है कि लोग putStrLn
लागू करते हैं। उनके बीच वास्तविक मतभेद क्या हैं?हास्केल
print $ function
putStrLn $ function
में प्रिंट और putStrLn के बीच अंतर मैं उलझन में हूं। मैं print
का उपयोग करने का प्रयास करता हूं, लेकिन मुझे पता है कि लोग putStrLn
लागू करते हैं। उनके बीच वास्तविक मतभेद क्या हैं?हास्केल
print $ function
putStrLn $ function
समारोह putStrLn
एक String
लेता है और स्क्रीन पर प्रदर्शित करता है, एक नई पंक्ति चरित्र के बाद ( एक Str आईएनजी एक नया एल मैं n ई द्वारा पीछा कर दिया)।
क्योंकि यह केवल String
रों साथ काम करता है, एक आम मुहावरा, किसी भी वस्तु ले यह एक String
में बदलने, और फिर इसे प्रदर्शित करने के लिए putStrLn
लागू है। सामान्य तरीके से एक String
को एक वस्तु कन्वर्ट करने के लिए show
समारोह के साथ है, इसलिए एक बार जब आप देखते हैं कि, यह एक बहुत बड़ा एक समारोह है कि धर्मान्तरित परिभाषित करने के लिए खिंचाव नहीं है अपने कोड
putStrLn (show 1)
putStrLn (show [1, 2, 3])
putStrLn (show (Just 42))
का एक बहुत के साथ खत्म होगा एक String
करने के लिए और एक कदम
print x = putStrLn (show x)
जो वास्तव में print
समारोह है क्या है में स्ट्रिंग प्रदर्शित करता है।
'putStrLn'" AS "जैसे गैर ASCII वर्ण दिखा सकता है जबकि' print' नहीं कर सकता। मैं वास्तव में क्यों नहीं जानता कि क्यों। 'PutStrLn" я "' बनाम 'प्रिंट "я" 'आज़माएं। – CMCDragonkai
@CMCDragonkai यह कारण है कि मैं जवाब में देता हूं। 'प्रिंट' फ़ंक्शन 'show' के आउटपुट पर' putStrLn' को कॉल करता है, और 'शो' फ़ंक्शंस उन्हें प्रदर्शित करने के लिए तारों को उनके यूनिकोड प्रतिनिधित्व में परिवर्तित करता है। 'Я' (सिरिलिक अक्षर "या") के लिए यूनिकोड पॉइंट यू + 044 एफ, या 1103 दशमलव में है, यही कारण है कि 'शो "я" 'outputs' "\" \\ 1103 \ "" - यह वही है जो आप सात वर्णों '"\ 1103" से बना स्ट्रिंग प्राप्त करने के लिए ghci टाइप करना होगा (इसे आजमाएं!) –
क्या इसका मतलब यह नहीं है कि सामान्य रूप से पाठ के साथ काम करते समय' putStrLn' का उपयोग करना बेहतर होगा? – CMCDragonkai
'प्रिंट = putStrLn। शो ' – Satvik
क्या आपने' प्रिंट 3', 'putStrLn 3', 'print" तीन "', 'putStrLn" ghci में तीन "' चलाने की कोशिश की है? यह वास्तव में एक प्रश्न है जिसका प्रयोग थोड़ा सा प्रयोग करके किया जा सकता है। –