Fork me on GitHub

ব্যাসিকস

This translation is up to date.

ইন্সটলেশন, ইন্টারএ্যাক্টিভ প্রম্পট, ব্যাসিক ডাটা টাইপ ও ব্যাসিক অপারেশন

সূচীপত্র

ইন্সটলেশন ও ইন্টারএ্যাক্টিভ মোড

ইন্সটলেশন

শুরুতেই আমাদের এলিক্সির ইন্সটল করতে হবে । আলাদা আলাদা অপারেটিং সিস্টেমের জন্য ইন্সটলেশনের বিস্তারিত নির্দেশনা পাওয়া যাবে এলিক্সির এর অফিশিয়াল ওয়েব সাইটের এই সেকশনে - Installing Elixir । এই গাইডলাইন অনুসরন করে প্রথমে এলিক্সির ইন্সটল করে নিন ।

এলিক্সির ইন্সটল করা হয়ে গেলে নিচের মত করে কমান্ড ব্যবহার করে আপনি এলিক্সির এর ভার্সন নাম্বার দেখতে পাবেন -

% elixir -v
Erlang/OTP 19 [erts-8.0.2] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Elixir 1.4.0

ইন্টারএ্যাক্টিভ মোড

এলিক্সিরের ইন্টারএ্যাক্টিভ শেল এর নাম iex - এই ইন্টারএ্যাক্টিভ প্রম্পট এ আমরা এলিক্সির এক্সপ্রেশন টাইপ করে সাথে সাথে আউটপুট পেতে পারি ।

ইন্টারএ্যাক্টিভ শেল চালু করত টাইপ করুন - iex:

Erlang/OTP 19 [erts-8.0.2] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (1.4.0) - press Ctrl+C to exit (type h() ENTER for help)
iex>

আসুন আমরা কিছু এক্সপ্রেশন টাইপ করি এবং সেগুলোর আউটপুট দেখে নেই :

iex> 2+3
5
iex> 2+3 == 5
true
iex> String.length("The quick brown fox jumps over the lazy dog")
43

উপরের সব গুলো এক্সপ্রেশন এর অর্থ না বুঝলেও চিন্তার কোন কারন নেই, আস্তে আস্তে আমরা এই এক্সপ্রেশন গুলো চিনবো ও ব্যবহার করতে শিখবো ।

ব্যাসিক ডাটা টাইপ

ইন্টিজার

iex> 255
255

এছাড়া বাইনারি, অক্টাল এবং হেক্সাডেসিমেল নাম্বার সাপোর্টও বিল্ট ইন:

iex> 0b0110
6
iex> 0o644
420
iex> 0x1F
31

ফ্লোট

এলিক্সিরে ফ্লোট টাইপের জন্য দশমিক এর আগে অন্তত একটা ডিজিট থাকতে হবে । এই নাম্বার গুলো ৬৪ বিট ডাবল প্রেসিশন এবং এক্সপোনেন্ট এর জন্য e ব্যবহার করে:

iex> 3.14
3.14
iex> .14
** (SyntaxError) iex:2: syntax error before: '.'
iex> 1.0e-10
1.0e-10

বুলিয়ানস

এলিক্সির এর বুলিয়ান টাইপের ভ্যালু হতে পারে true অথবা falsefalse এবং nil ভ্যালু বাদে সব ভ্যালুই ট্রুথি - অর্থাৎ বুলিয়ান টাইপে true হিসেবে বিবেচ্য হবে ।

iex> true
true
iex> false
false

এ্যাটমস

এ্যাটম মূলত কন্সট্যান্ট - এ্যাটমের নামই তার ভ্যালু । রুবি তে যারা কাজ করেছেন, তাদের কাছে এ্যাটম আর সিম্বলের কনসেপ্ট একই রকম মনে হবে ।

iex> :foo
:foo
iex> :foo == :bar
false

বুলিয়ান truefalse আসলে দুইটা এ্যাটম - :true এবং :false

iex> true |> is_atom
true
iex> :true |> is_boolean
true
iex> :true === true
true

এলিক্সিরে মডিউল এর নামগুলোও এ্যাটম টাইপ । যেমন: MyApp.MyModule একটা ভ্যালিড এ্যাটম যদিও আমরা এই নামে কোন মডিউল এখনো তৈরি করিনি ।

iex> is_atom(MyApp.MyModule)
true

আর্ল্যাং এর বিল্ট ইন বা থার্ড পার্টি লাইব্রেরী থেকে মডিউল রেফার করার জন্য আমরা সব সময়ই এ্যাটম ব্যবহার করি ।

iex> :crypto.rand_bytes 3
<<23, 104, 108>>

স্ট্রিংস

এলিক্সিরে স্ট্রিং UTF-8 এনকোডেড এবং ডাবল কোট ব্যবহার করে স্ট্রিং তৈরি করতে হয়:

iex> "Hello"
"Hello"
iex> "dziękuję"
"dziękuję"

স্ট্রিং লাইন ব্রেক এবং এস্কেইপ সিকুয়েন্স সাপোর্ট করে:

iex> "foo
...> bar"
"foo\nbar"
iex> "foo\nbar"
"foo\nbar"

এগুলো ছাড়াও এলিক্সির আরও নানা কম্প্লেক্স টাইপ আছে যেগুলো সম্পর্কে আমরা আরও জানতে পারবো কালেকশন এবং ফাংশন শেখার সময় ।

ব্যাসিক অপারেশনস

এ্যারিথমেটিক

এলিক্সির ব্যাসিক এ্যারিথমেটিক অপারেশন সাপোর্ট করে, যেমন যোগ, বিয়োগ, গুন, ভাগ - +, -, * এবং / - তবে একটা জিনিস লক্ষ্য রাখতে হবে ভাগ এর সময় / অপারেটর ব্যবহার করলে আমরা সব সময় ফ্লোট টাইপ পাবো ।

iex> 2 + 2
4
iex> 2 - 1
1
iex> 2 * 5
10
iex> 10 / 5
2.0

যদি আমরা ভাগফল ইন্টিজারে পেতে চাই বা ভাগশেষ জানতে চাই সেক্ষেত্রে আমরা div এবং rem ফাংশন ব্যবহার করতে পারি:

iex> div(10, 5)
2
iex> rem(10, 3)
1

বুলিয়ান

এলিক্সির ||, &&, এবং ! অপারেটর সাপোর্ট করে যেগুলো যে কোন টাইপের সাথে ব্যবহার করা যায়:

iex> -20 || true
-20
iex> false || 42
42

iex> 42 && true
true
iex> 42 && nil
nil

iex> !42
false
iex> !false
true

এছাড়াও তিনটা এ্যাডিশনাল অপারেটর আছে যেগুলোর প্রথম আর্গুমেন্ট অবশ্যই বুলিয়ান ভ্যালু (true or false) হতে হবে:

iex> true and 42
42
iex> false or true
true
iex> not false
true
iex> 42 and true
** (ArgumentError) argument error: 42
iex> not 42
** (ArgumentError) argument error

কম্প্যারিজন

এলিক্সির গতানুগতিক সব কম্প্যারিজন অপারেটর সাপোর্ট করে : ==, !=, ===, !==, <=, >=, < এবং >.

iex> 1 > 2
false
iex> 1 != 2
true
iex> 2 == 2
true
iex> 2 <= 3
true

ইন্টিজার এবং ফ্লোটের ক্ষেত্রে স্ট্রিক্ট কম্প্যারিজন এর জন্য === ব্যবহার করতে হয়:

iex> 2 == 2.0
true
iex> 2 === 2.0
false

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

number < atom < reference < function < port < pid < tuple < map < list < bitstring

এর ফলে আমরা বেশ ইন্টারেস্টিং কিন্তু ভ্যালিড কম্প্যারিজন অপারেশন চালাতে পারি যেটা হয়তো অন্য ল্যাঙ্গুয়েজে সম্ভব হতো না:

iex> :hello > 999
true
iex> {:hello, :world} > [1, 2, 3]
false

স্ট্রিং ইন্টারপোলেশন

রুবি ব্যবহারকারীদের কাছে এলিক্সির এর স্ট্রিং ইন্টারপোলেশন একই রকম মনে হবে:

iex> name = "Sean"
iex> "Hello #{name}"
"Hello Sean"

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

দুইটা স্ট্রিং কে জোড়া লাগাতে আমরা <> অপারেটর ব্যবহার করা হয়:

iex> name = "Sean"
iex> "Hello " <> name
"Hello Sean"

পৃষ্ঠা শেয়ার করুন