ইন্সটলেশন, ইন্টারএ্যাক্টিভ প্রম্পট, ব্যাসিক ডাটা টাইপ ও ব্যাসিক অপারেশন
সূচীপত্র
ইন্সটলেশন ও ইন্টারএ্যাক্টিভ মোড
ইন্সটলেশন
শুরুতেই আমাদের এলিক্সির ইন্সটল করতে হবে । আলাদা আলাদা অপারেটিং সিস্টেমের জন্য ইন্সটলেশনের বিস্তারিত নির্দেশনা পাওয়া যাবে এলিক্সির এর অফিশিয়াল ওয়েব সাইটের এই সেকশনে - Installing Elixir । এই গাইডলাইন অনুসরন করে প্রথমে এলিক্সির ইন্সটল করে নিন ।
এলিক্সির ইন্সটল করা হয়ে গেলে নিচের মত করে কমান্ড ব্যবহার করে আপনি এলিক্সির এর ভার্সন নাম্বার দেখতে পাবেন -
% elixir -v
Erlang/OTP 22.0 [erts-10.5.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Elixir 1.10.1
ইন্টারএ্যাক্টিভ মোড
এলিক্সিরের ইন্টারএ্যাক্টিভ শেল এর নাম iex
- এই ইন্টারএ্যাক্টিভ প্রম্পট এ আমরা এলিক্সির এক্সপ্রেশন টাইপ করে সাথে সাথে আউটপুট পেতে পারি ।
ইন্টারএ্যাক্টিভ শেল চালু করত টাইপ করুন - iex
:
Erlang/OTP 22.0 [erts-10.5.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Interactive Elixir (1.10.1) - 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
অথবা false
। false
এবং nil
ভ্যালু বাদে সব ভ্যালুই ট্রুথি - অর্থাৎ বুলিয়ান টাইপে true
হিসেবে বিবেচ্য হবে ।
iex> true
true
iex> false
false
এ্যাটমস
এ্যাটম মূলত কন্সট্যান্ট - এ্যাটমের নামই তার ভ্যালু । রুবি তে যারা কাজ করেছেন, তাদের কাছে এ্যাটম আর সিম্বলের কনসেপ্ট একই রকম মনে হবে ।
iex> :foo
:foo
iex> :foo == :bar
false
বুলিয়ান true
ও false
আসলে দুইটা এ্যাটম - :true
এবং :false
।
iex> is_atom(true)
true
iex> is_boolean(:true)
true
iex> :true === true
true
এলিক্সিরে মডিউল এর নামগুলোও এ্যাটম টাইপ । যেমন: MyApp.MyModule
একটা ভ্যালিড এ্যাটম যদিও আমরা এই নামে কোন মডিউল এখনো তৈরি করিনি ।
iex> is_atom(MyApp.MyModule)
true
আর্ল্যাং এর বিল্ট ইন বা থার্ড পার্টি লাইব্রেরী থেকে মডিউল রেফার করার জন্য আমরা সব সময়ই এ্যাটম ব্যবহার করি ।
iex> :crypto.strong_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"
Caught a mistake or want to contribute to the lesson? Edit this page on GitHub!