ট্র্যাক
/
Elixir
Elixir
/
অনুশীলনী
/
ভাষার তালিকা
ভাষার তালিকা

ভাষার তালিকা

লার্নিং অনুশীলনী

ভূমিকা

অ্যারে

অ্যারে Elixir ভাষায় বিল্ট-ইন। এগুলোকে একটি বেসিক টাইপ ধরা হয়, যা স্কোয়ার ব্র্যাকেট দিয়ে লেখা হয়। অ্যারে খালি থাকতে পারে, আবার যেকোনো টাইপের যেকোনো সংখ্যক আইটেম ধারণ করতে পারে। যেমন:

empty_list = []
one_item_list = [1]
two_item_list = [1, 2]
multiple_type_list = [1, :pi, 3.14, "four"]

Elixir অ্যারে ইমপ্লিমেন্ট করে লিংকড অ্যারে হিসেবে, যেখানে প্রতিটি নোড দুটি মান সংরক্ষণ করে: প্রথম আইটেম, আর বাকি সব আইটেম নিয়ে গঠিত আরেকটি অ্যারে। অ্যারের প্রথম আইটেমটিকে বলা হয় হেড আর বাকি আইটেমগুলোর অ্যারেটিকে বলা হয় টেল। কোডে আমরা এই নোটেশনটি ব্যবহার করতে পারি:

# [1] represented in [head | tail] notation
[1 | []]

# [1, 2, 3] represented in [head | tail] notation
[1 | [2 | [3 | []]]]

আমরা [head | tail] নোটেশন ব্যবহার করে একটি অ্যারের শুরুতে এলিমেন্ট যোগ করতে পারি:

# Suppose
list = [2, 1]

[3, 2, 1] == [3 | list]
# => true

অ্যারে নিয়ে কাজ করার জন্য Kernel মডিউলে বেশ কিছু ফাংশন আছে, আর আছে পুরো List মডিউল।

# Check if 1 is a member of the list
1 in [1, 2, 3, 4]
# => true

নির্দেশনা

এই অনুশীলনীতে প্রোগ্রামিং ভাষার একটি অ্যারে নিয়ে কাজ করার জন্য আপনাকে কিছু ফাংশন তৈরি করতে হবে।

1. একটি খালি প্রোগ্রামিং ভাষার অ্যারে রিটার্ন করার জন্য একটি ফাংশন ডিফাইন করুন

new/0 ফাংশনটি ডিফাইন করুন, যা কোনো আর্গুমেন্ট নেয় না এবং একটি খালি অ্যারে রিটার্ন করে।

LanguageList.new()
# => []

2. অ্যারেতে একটি প্রোগ্রামিং ভাষা যোগ করার জন্য একটি ফাংশন ডিফাইন করুন

add/2 ফাংশনটি ডিফাইন করুন, যা ২টি আর্গুমেন্ট নেয় (একটি প্রোগ্রামিং ভাষার অ্যারে এবং একটি প্রোগ্রামিং ভাষার স্ট্রিং লিটারাল)। এটি প্রদত্ত অ্যারের শুরুতে নতুন প্রোগ্রামিং ভাষাটি যোগ করে প্রাপ্ত অ্যারেটি রিটার্ন করবে।

language_list = LanguageList.new()
# => []
language_list = LanguageList.add(language_list, "Clojure")
# => ["Clojure"]
language_list = LanguageList.add(language_list, "Haskell")
# => ["Haskell", "Clojure"]

3. অ্যারে থেকে একটি প্রোগ্রামিং ভাষা সরানোর জন্য একটি ফাংশন ডিফাইন করুন

remove/1 ফাংশনটি ডিফাইন করুন, যা ১টি আর্গুমেন্ট নেয় (একটি প্রোগ্রামিং ভাষার অ্যারে)। এটি প্রথম এলিমেন্টটি বাদ দিয়ে অ্যারেটি রিটার্ন করবে। ধরে নিন যে অ্যারেতে সবসময় অন্তত একটি এলিমেন্ট থাকবে।

language_list = LanguageList.new()
# => []
language_list = LanguageList.add(language_list, "Clojure")
# => ["Clojure"]
language_list = LanguageList.add(language_list, "Haskell")
# => ["Haskell", "Clojure"]
language_list = LanguageList.remove(language_list)
# => ["Clojure"]

4. অ্যারেতে থাকা প্রথম এলিমেন্টটি রিটার্ন করার জন্য একটি ফাংশন ডিফাইন করুন

first/1 ফাংশনটি ডিফাইন করুন, যা ১টি আর্গুমেন্ট নেয় (একটি প্রোগ্রামিং ভাষার অ্যারে)। এটি অ্যারেতে থাকা প্রথম প্রোগ্রামিং ভাষাটি রিটার্ন করবে। ধরে নিন যে অ্যারেতে সবসময় অন্তত একটি এলিমেন্ট থাকবে।

language_list = LanguageList.new()
# => []
language_list = LanguageList.add(language_list, "Elm")
# => ["Elm"]
language_list = LanguageList.add(language_list, "Prolog")
# => ["Prolog", "Elm"]
LanguageList.first(language_list)
# => "Prolog"

5. অ্যারেতে কতগুলো প্রোগ্রামিং ভাষা আছে তা রিটার্ন করার জন্য একটি ফাংশন ডিফাইন করুন

count/1 ফাংশনটি ডিফাইন করুন, যা ১টি আর্গুমেন্ট নেয় (একটি প্রোগ্রামিং ভাষার অ্যারে)। এটি অ্যারেতে থাকা প্রোগ্রামিং ভাষার সংখ্যা রিটার্ন করবে।

language_list = LanguageList.new()
# => []
language_list = LanguageList.add(language_list, "Elm")
# => ["Elm"]
language_list = LanguageList.add(language_list, "Prolog")
# => ["Prolog", "Elm"]
LanguageList.count(language_list)
# => 2

6. অ্যারেতে একটি ফাংশনাল ভাষা আছে কি না তা নির্ণয় করার জন্য একটি ফাংশন ডিফাইন করুন

functional_list?/1 ফাংশনটি ডিফাইন করুন, যা ১টি আর্গুমেন্ট নেয় (একটি প্রোগ্রামিং ভাষার অ্যারে)। এটি একটি বুলিয়ান মান রিটার্ন করবে। অ্যারেতে থাকা প্রোগ্রামিং ভাষাগুলোর মধ্যে "Elixir" থাকলে এটি ট্রু রিটার্ন করবে।

language_list = LanguageList.new()
# => []
language_list = LanguageList.add(language_list, "Elixir")
# => ["Elixir"]
LanguageList.functional_list?(language_list)
# => true
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Elixir Exercism

ভাষার তালিকা শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Elixir ট্র্যাকের 58টি কনসেপ্ট168টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।