ট্র্যাক
/
Gleam
Gleam
/
সিলেবাস
/
ইউজ এক্সপ্রেশন
ইউ

ইউজ এক্সপ্রেশন মধ্যে Gleam

2টি অনুশীলনী

ইউজ এক্সপ্রেশন সম্পর্কে

Gleam-এ হায়ার অর্ডার ফাংশন লেখা ও ব্যবহার করা কমন, অর্থাৎ এমন ফাংশন যা অন্য ফাংশনকে আর্গুমেন্ট হিসেবে নেয়। মাঝে মাঝে একসাথে অনেকগুলো হায়ার অর্ডার ফাংশন ব্যবহার করলে কোড পড়তে কঠিন হয়ে যায়, কারণ তখন ইন্ডেন্টেশনের অনেক স্তর তৈরি হয়।

উদাহরণ হিসেবে, এখানে একটি ফাংশন আছে যা এমন কয়েকটি ফাংশন কল করে যারা Result(Int, Nil) রিটার্ন করে, আর চারটিই সফল হলে মানগুলো যোগ করে।

import gleam/result

pub fn main() -> Result(Int, Nil) {
  result.try(function1(), fn(a) {
    result.try(function2(), fn(b) {
      result.try(function3(), fn(c) {
        result.try(function4(), fn(d) {
          Ok(a + b + c + d)
        })
      })
    })
  })
}

Gleam-এর use এক্সপ্রেশন দিয়ে এই কোডটি ইন্ডেন্টেশন ছাড়াই লেখা যায়, যা প্রায়শই কোডটি পড়া আরও সহজ করে তোলে।

import gleam/result

pub fn main() -> Result(Int, Nil) {
  use a <- result.try(function1())
  use b <- result.try(function2())
  use c <- result.try(function3())
  use d <- result.try(function4())
  Ok(a + b + c + d)
}

একটি use এক্সপ্রেশন ব্লকের পরের সব স্টেটমেন্ট একসাথে সংগ্রহ করে সেটিকে একটি কলব্যাক ফাংশন হিসেবে ওই ফাংশন কলে শেষ আর্গুমেন্ট হিসাবে পাঠিয়ে দেয়। use কিওয়ার্ড আর <- চিহ্নের মাঝের ভ্যারিয়েবলগুলো হলো সেই আর্গুমেন্টগুলোর নাম, যেগুলো কলব্যাক ফাংশনে পাঠানো হবে।

// This use expression
use a <- function(1, 2)
io.println("Hello!")
a

// Is equivalent to this normal function call
function(1, 2, fn(a) {
  io.println("Hello!")
  a
})

কলব্যাক ফাংশন যত খুশি আর্গুমেন্ট নিতে পারে, এমনকি একটিও না-ও নিতে পারে।

use a, b, c, d <- call_4_function()

use <- call_0_function()

use এক্সপ্রেশন দিয়ে কল করা যায় এমন একটি ফাংশন বানাতে বিশেষ কোনো শর্ত নেই, শুধু শেষ আর্গুমেন্ট হিসেবে একটি কলব্যাক ফাংশন নিলেই হয়।

pub fn call_twice(function: fn() -> t) -> #(t, t) {
  let first = function()
  let second = function()
  #(first, second)
}

Gleam-এর use এক্সপ্রেশন খুবই শক্তিশালী একটি ফিচার, যা অনেক সমস্যায় কাজে লাগানো যায়, তবে বেশি ব্যবহার করলে কোড পড়া কঠিন হয়ে যেতে পারে। সাধারণত সাধারণ ফাংশন কল সিনট্যাক্স ব্যবহার করাই ভালো, আর কোড পড়া সহজ করে তোলে এমন ক্ষেত্রেই কেবল use এক্সপ্রেশনের দ্বারস্থ হওয়া উচিত।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

ইউজ এক্সপ্রেশন শিখুন