Inherited from v1.0.0

অপারেটরসমূহ

Bnlang-এর অপারেটর সেট ইচ্ছাকৃতভাবে ছোট। সিম্বলিক অপারেটর (+, ==, <, …) ইংরেজি ও বাংলা কোডে একই; শুধুমাত্র লজিক্যাল শব্দ অপারেটর (and/এবং, or/অথবা, not/না) এর বাংলা রূপ আছে।

দ্রুত রেফারেন্স

ক্যাটেগরিঅপারেটর
গাণিতিক+ - * / %
তুলনা== != < <= > >=
লজিক্যাল (শব্দ)and / এবং, or / অথবা, not / না
অ্যাসাইনমেন্ট=
মেম্বার / ইনডেক্স / কল. [ ] ( )
স্ট্রিং কনক্যাট+

গাণিতিক

print(2 + 3);     // 5
print(10 - 4);    // 6
print(3 * 4);     // 12
print(10 / 3);    // 3.333...
print(10 % 3);    // 1
print(-5);        // -5  (unary minus)

কোনো ++ / -- অপারেটর নেইi = i + 1 লিখুন।

কোনো compound-assignment অপারেটর (+=, -=, *=, ইত্যাদি) নেই। পূর্ণ রূপ লিখুন: x = x + 1

তুলনা

print(2 == 2);    // true
print(2 != 3);    // true
print(2 < 3);     // true
print(2 <= 2);    // true

কোনো === / !== নেই। সমতা ==, এবং এটি ইমপ্লিসিটলি টাইপ coerce করে না1 == "1" হলো false। আপনার ডাটার সাথে মানানসই তুলনা ব্যবহার করুন।

লজিক্যাল শব্দ অপারেটর

লজিক্যাল অপারেটর শব্দ আকারে লেখা। ইংরেজি ও বাংলা — দু'টোই একই টোকেনে পার্স হয়।

var a = true;
var b = false;

print(a and b);    // false
print(a or  b);    // true
print(not a);      // false

// বাংলা রূপ — একই অর্থ, একই পার্সিং
print(a এবং b);    // false
print(a অথবা b);   // true
print(না a);       // false

কোনো &&, ||, ! সিম্বলিক লজিক্যাল অপারেটর নেই। শব্দ ব্যবহার করুন।

কোনো বিটওয়াইজ অপারেটর (&, |, ^, ~, <<, >>) নেই। বিট ম্যানিপুলেশন দরকার হলে গণিতে স্পষ্টভাবে লিখুন।

অ্যাসাইনমেন্ট

var x = 10;
x = x + 1;     // সাধারণ অ্যাসাইনমেন্ট
print(x);      // 11

শুধু =। কোনো compound রূপ নেই।

মেম্বার অ্যাক্সেস, ইনডেক্স, কল

var user = { name: "আলিস", roles: ["admin", "editor"] };

print(user.name);          // মেম্বার অ্যাক্সেস
print(user["name"]);       // ম্যাপ ইনডেক্স (.name এর সমান)
print(user.roles[0]);      // লিস্ট ইনডেক্স
print(user.roles.length);  // intrinsic property

var greet = function (n) { return "hi " + n; };
print(greet("Alice"));     // ফাংশন কল

স্ট্রিং কনক্যাটেনেশন

কমপক্ষে এক পাশে স্ট্রিং থাকলে + স্ট্রিং কনক্যাটেনেশন হিসেবে কাজ করে:

print("hello, " + "world");       // "hello, world"
print("count: " + 42);            // "count: 42"

কোনো স্ট্রিং-ইন্টারপোলেশন সিনট্যাক্স নেই (কোনো backtick template string নেই)। + ব্যবহার করুন অথবা print(...) এ একাধিক আর্গুমেন্ট পাঠান।

যা এখানে নেই

JavaScript বা Python থেকে আসলে, Bnlang যা শিপ করে না:

  • === / !== — শুধু == / !=
  • &&, ||, !and, or, not ব্যবহার করুন।
  • ??, ?., ?: (টারনারি) — if/else ব্যবহার করুন।
  • ++, --, +=, -=, ইত্যাদি — পূর্ণ অ্যাসাইনমেন্ট লিখুন।
  • &, |, ^, ~, <<, >> — কোনো বিটওয়াইজ অপ নেই।
  • typeof, instanceof, in, delete, void, new — অপারেটর নয় (and/or/not বাইরে কোনো অপারেটর-কীওয়ার্ড নেই)। typeof-এর বদলে type() বিল্ট-ইন ব্যবহার করুন।
  • Backtick template string — + ব্যবহার করুন।