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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।