অপারেটরসমূহ
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 —
+ব্যবহার করুন।