F# এর সিনট্যাক্সের মৌলিক ধারণা

Computer Programming - এফ শার্প প্রোগ্রামিং (F# Programming) - F# সিনট্যাক্স এবং বেসিক কনসেপ্ট (F# Syntax and Basic Concepts)
145

F# এর সিনট্যাক্সের মৌলিক ধারণা

F# একটি ফাংশনাল প্রোগ্রামিং ভাষা যা .NET প্ল্যাটফর্মে চলে। এর সিনট্যাক্স সরল এবং পরিষ্কার, যা প্রোগ্রামারদের কোড লেখার প্রক্রিয়াকে আরও সহজ করে তোলে। এখানে F# এর কিছু মৌলিক সিনট্যাক্স ধারণা তুলে ধরা হয়েছে যা আপনাকে ভাষাটির মূল কাঠামো বুঝতে সাহায্য করবে।


1. ভেরিয়েবল ঘোষণা এবং মান অ্যাসাইনমেন্ট

F# এ ভেরিয়েবল সাধারণত immutable (অপরিবর্তনীয়) হয়। একবার কোনো ভেরিয়েবলের মান নির্ধারিত হলে সেটি পরিবর্তন করা যায় না। আপনি যদি mutable ভেরিয়েবল ব্যবহার করতে চান, তবে mutable কীওয়ার্ড ব্যবহার করতে হবে।

  • Immutable ভেরিয়েবল:

    let x = 10
    let name = "F#"
  • Mutable ভেরিয়েবল:

    let mutable y = 20
    y <- 30 // mutable ভেরিয়েবলের মান পরিবর্তন করা যায়

2. ফাংশন সংজ্ঞা

F# এ ফাংশন সংজ্ঞা খুবই সহজ এবং সাধারণ। ফাংশন তৈরি করতে let কীওয়ার্ড ব্যবহার করা হয়।

  • ফাংশন সংজ্ঞা:

    let add x y = x + y
  • ফাংশন কল:

    let result = add 5 10  // result হবে 15

F# এ ফাংশনগুলি first-class citizens অর্থাৎ ফাংশনকে অন্য ফাংশনের আর্গুমেন্ট হিসেবে পাস করা যায় বা রিটার্নও করা যায়।


3. প্যাটার্ন মেচিং (Pattern Matching)

F# এ প্যাটার্ন মেচিং একটি শক্তিশালী বৈশিষ্ট্য যা ডেটার ওপর ভিত্তি করে শর্তাবলী নির্ধারণ করতে ব্যবহৃত হয়। এটি কন্ডিশনাল স্টেটমেন্টের তুলনায় অনেক বেশি শক্তিশালী এবং পরিষ্কার।

  • প্যাটার্ন মেচিং উদাহরণ:

    let describeNumber x =
        match x with
        | 0 -> "Zero"
        | 1 -> "One"
        | _ -> "Other"

এখানে, match ব্যবহার করে বিভিন্ন মানের জন্য আলাদা আলাদা আউটপুট প্রদান করা হচ্ছে।


4. লিস্ট এবং অ্যারে

F# এ লিস্ট এবং অ্যারে খুব সাধারণ ডেটা স্ট্রাকচার হিসেবে ব্যবহৃত হয়।

  • লিস্ট:

    let numbers = [1; 2; 3; 4; 5]

    F# এ লিস্টগুলি immutable (অপরিবর্তনীয়) হয়। আপনি লিস্টের উপাদান পরিবর্তন করতে পারবেন না, তবে নতুন লিস্ট তৈরি করতে পারেন।

  • অ্যারে:

    let arr = [| 1; 2; 3; 4 |]
    arr.[0] <- 10  // অ্যারে mutable হওয়ায় এখানে মান পরিবর্তন করা যায়

5. কন্ডিশনাল এক্সপ্রেশন (If-else)

F# এ if-else স্টেটমেন্ট সাধারণত অন্যান্য ভাষার মতোই কাজ করে, তবে এটি একটি এক্সপ্রেশন হিসেবে ব্যবহৃত হয়, যার মান ফিরে আসে।

  • কন্ডিশনাল এক্সপ্রেশন উদাহরণ:

    let max x y =
        if x > y then x else y

এখানে, if এক্সপ্রেশনটি একটি মান ফেরত দেয়, এবং সেটি max ফাংশনে ব্যবহার করা হচ্ছে।


6. ফাংশনাল স্টাইল উচ্চ-স্তরের ফাংশন (Higher-order Functions)

F# এ ফাংশনগুলি higher-order functions হিসেবে ব্যবহার করা হয়। এর মানে হলো আপনি একটি ফাংশনকে আর্গুমেন্ট হিসেবে পাস করতে পারেন, অথবা একটি ফাংশন থেকে অন্য ফাংশন ফেরত দিতে পারেন।

  • উচ্চ-স্তরের ফাংশন উদাহরণ:

    let applyToFive f = f 5
    let addThree x = x + 3
    let result = applyToFive addThree  // result হবে 8

এখানে, applyToFive ফাংশনটি অন্য একটি ফাংশনকে আর্গুমেন্ট হিসেবে নেয় এবং সেই ফাংশনকে ৫ এ প্রয়োগ করে।


7. ল্যাম্বডা ফাংশন (Lambda Functions)

F# এ আপনি ল্যাম্বডা ফাংশন বা অননাম ফাংশন ব্যবহার করতে পারেন, যা ছোট ফাংশন লেখার জন্য উপকারী।

  • ল্যাম্বডা ফাংশন উদাহরণ:

    let square = fun x -> x * x
    let result = square 4  // result হবে 16

এখানে, fun কিওয়ার্ড ব্যবহার করে একটি নতুন ফাংশন তৈরি করা হয়েছে।


8. টিউপল (Tuples)

F# এ টিউপল একটি ডেটা স্ট্রাকচার যা একাধিক মান ধারণ করতে পারে।

  • টিউপল উদাহরণ:

    let person = ("John", 30)
    let name = fst person  // name হবে "John"
    let age = snd person   // age হবে 30

এখানে, fst এবং snd ব্যবহার করে টিউপল থেকে প্রথম এবং দ্বিতীয় উপাদান অ্যাক্সেস করা হয়েছে।


9. বাইন্ডিং (Binding)

F# এ আপনি let কিওয়ার্ড ব্যবহার করে মান বা এক্সপ্রেশন বাইন্ড করতে পারেন। এটি মূলত ভেরিয়েবল ঘোষণা করার জন্য ব্যবহৃত হয়।

  • বাইন্ডিং উদাহরণ:

    let x = 10
    let y = x + 5

এখানে, x এবং y বাইন্ডিং ব্যবহার করা হয়েছে।


উপসংহার

F# এর সিনট্যাক্স সরল, শক্তিশালী এবং কার্যকরী। ফাংশনাল প্রোগ্রামিং ভাষা হিসেবে F# এর immutable data, pattern matching, higher-order functions, এবং functional style আপনাকে আরও কমপ্লেক্স এবং বিশুদ্ধ কোড লেখার সুবিধা প্রদান করে। এর সিনট্যাক্সের এই মৌলিক ধারণাগুলি F# প্রোগ্রামিংয়ের মূল অংশ এবং এটি সহজেই আপনার প্রোগ্রামিং দক্ষতা উন্নত করতে সাহায্য করবে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...