Elm-এ একটি Array হলো একই টাইপের শূন্য বা ততোধিক মানের একটি দ্রুত, ইমিউটেবল কালেকশন।
List হলো একটি ডিফল্ট ইমপোর্ট, কিন্তু এর বিপরীতে Array মডিউলটি import Array বা অনুরূপ কিছু দিয়ে স্পষ্টভাবে ইমপোর্ট করতে হয়।
অ্যারে নিচের মতো করে ডিফাইন করা যায়:
import Array exposing (Array)
empty : Array Char
empty = Array.empty
singleValue = Array.fromList [ 5 ] --> Array Int
repeatSingleValue = Array.repeat 2 5 --> Array.fromList [ 5, 5 ]
initialiseFromIndex = Array.initialise 3 (\index -> index * 2) --> Array.fromList [ 0, 2, 4 ]
initialisefromList = Array.fromList [ "a", "b", "c" ] --> Array.fromList [ "a", "b", "c" ]
Array.push দিয়ে অ্যারেতে এলিমেন্ট যোগ করা হয়:
twoToFour = Array.fromList [ 2, 3, 4 ]
oneToFour = Array.push 1 twoToFour --> Array.fromList [ 1, 2, 3, 4 ]
Array.get দিয়ে অ্যারের একটি এলিমেন্ট বের করা হয়:
sixSeven = Array.fromList [ 6, 7 ]
Array.get 0 sixSeven --> Just 6
Array.set দিয়ে অ্যারের একটি এলিমেন্ট সেট করা হয়:
sixSeven = Array.fromList [ 6, 7 ]
Array.set 1 8 sixSeven --> Array.fromList [ 6, 8 ]
Array মডিউলে ডিফাইন করা ফাংশন দিয়ে অ্যারে নিয়ে কাজ করা হয়।
oneTwo = Array.fromList [ 1, 2 ]
Array.length oneTwo --> 2
হতে-চলো যাদুকর হিসেবে Elyse-কে কিছু বেসিক বিষয় অনুশীলন করতে হবে। তার কাছে একটি তাসের ডেক আছে, যা নিয়ে সে কাজ করতে চায়।
কাজটা একটু সহজ করার জন্য সে শুধু ১ থেকে ১০ নম্বরের তাস ব্যবহার করে।
প্রদত্ত ডেক থেকে index অবস্থানের তাসটি রিটার্ন করে এমন getCard ফাংশনটি ইমপ্লিমেন্ট করুন। যদি index ডেকে না থাকে, তাহলে Nothing রিটার্ন করুন।
getCard 2 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Just 4
getCard 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Nothing
index অবস্থানের তাসটি প্রদত্ত নতুন তাসে পরিবর্তিত করে এমন একটি ডেক রিটার্ন করে setCard ফাংশনটি ইমপ্লিমেন্ট করুন।
যদি index ডেকে না থাকে, তাহলে মূল ডেকটিই রিটার্ন করুন।
setCard 2 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Array.fromList [ 1, 2, 6, 1 ]
setCard 6 6 ( Array.fromList [ 1, 2, 4, 1 ] )
--> Array.fromList [ 1, 2, 4, 1 ]
নতুন তাসটি যোগ করা অবস্থায় একটি ডেক রিটার্ন করে addCard ফাংশনটি ইমপ্লিমেন্ট করুন।
addCard 8 ( Array.fromList [ 5, 9, 7, 1 ] )
--> Array.fromList [ 5, 9, 7, 1, 8 ]
index অবস্থানের তাসটি সরিয়ে ফেলা একটি ডেক রিটার্ন করে removeCard ফাংশনটি ইমপ্লিমেন্ট করুন।
যদি প্রদত্ত index ডেকের কোনো বৈধ ইনডেক্স না হয়, তাহলে মূল ডেকটিই রিটার্ন করুন।
removeCard 2 ( Array.fromList [ 3, 2, 6, 4, 8 ] )
--> Array.fromList [ 3, 2, 4, 8 ]
removeCard 2 ( Array.fromList [ 3, 2 ] )
--> Array.fromList [ 3, 2 ]
ডেকে জোড় তাসের সংখ্যা গণনা করে এমন evenCardCount ফাংশনটি ইমপ্লিমেন্ট করুন।
evenCardCount (Array.fromList [ 3, 8, 4, 5, 1, 6, 10 ] )
--> 4
Exercism-এ সাইন আপ করুন, Elm ট্র্যাকের 28টি কনসেপ্ট110টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।