F# में string एक ऑब्जेक्ट है जो अपरिवर्तनीय टेक्स्ट को यूनिकोड अक्षरों (अक्षर, अंक, विराम चिह्न, आदि) के क्रम के रूप में दर्शाता है। इसे इस तरह परिभाषित किया जाता है:
let fruit = "Apple"
स्ट्रिंग पर काम या तो उसके मेथड कॉल करके किया जाता है, या String मॉड्यूल के फंक्शन इस्तेमाल करके। स्ट्रिंग बन जाने के बाद उसकी वैल्यू कभी नहीं बदल सकती। जो मेथड या फंक्शन स्ट्रिंग को बदलते हुए दिखते हैं, वे वास्तव में एक नई स्ट्रिंग लौटाते हैं।
स्ट्रिंग को कई अलग-अलग तरीकों से जोड़ा या फॉर्मेट किया जा सकता है।
+ ऑपरेटर इस्तेमाल कर सकते हैं:let sentence = "Apple" + " is a type of fruit."
sprintf फंक्शन इस्तेमाल कर सकते हैं, जिसमें फॉर्मेट टेक्स्ट में प्लेसहोल्डर होते हैं (string के लिए %s) और आप वैल्यू को आर्गुमेंट के रूप में देते हैं:let sentence = sprintf "%s is a type of %s." "Apple" "fruit"
इस अभ्यास में आप लॉग लाइनों को प्रोसेस करेंगे।
हर लॉग लाइन एक स्ट्रिंग होती है जिसका फॉर्मेट इस तरह है: "[<LEVEL>]: <MESSAGE>".
तीन अलग-अलग लॉग लेवल होते हैं:
INFOWARNINGERRORआपके पास तीन कार्य हैं। हर कार्य एक लॉग लाइन लेगा और आपसे उसके साथ कुछ करने को कहेगा।
लॉग लाइन का मैसेज लौटाने वाला message फंक्शन बनाइए:
message "[ERROR]: Invalid operation"
// => "Invalid operation"
शुरू या अंत में आने वाला कोई भी व्हाइट स्पेस हटा देना चाहिए:
message "[WARNING]: Disk almost full\r\n"
// => "Disk almost full"
लॉग लाइन का लॉग लेवल लौटाने वाला logLevel फंक्शन बनाइए; यह लेवल छोटे अक्षरों में लौटाया जाना चाहिए:
logLevel "[ERROR]: Invalid operation"
// => "error"
reformat फंक्शन बनाइए जो लॉग लाइन का फॉर्मेट बदलता है और मैसेज को पहले तथा लॉग लेवल को उसके बाद गोल ब्रैकेट में रखता है:
reformat "[INFO]: Operation completed"
// => "Operation completed (info)"
Exercism पर साइन अप कीजिए और F# को 18 कॉन्सेप्ट148 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।