F#-এ একটি array হলো শূন্য বা তার বেশি মানের একটি পরিবর্তনযোগ্য সংগ্রহ, যার দৈর্ঘ্য নির্দিষ্ট। এর মানে হলো, একটি অ্যারে একবার তৈরি হয়ে গেলে তার আকার আর বদলানো যায় না, কিন্তু তার মানগুলো বদলানো যায়। একটি অ্যারেতে থাকা সব মানের টাইপ একই হতে হবে। অ্যারে এভাবে ডিফাইন করা যায়:
let empty = [| |]
let emptyAlternative = Array.empty
let singleValue = [| 5 |]
let singleValueAlternative = Array.singleton 5
let threeValues = [| "a"; "b"; "c" |]
এলিমেন্ট একটি অ্যারেতে অ্যাসাইন করা যায় বা ইনডেক্স ব্যবহার করে তা থেকে পড়া যায়। F# অ্যারে শূন্য-ভিত্তিক, অর্থাৎ প্রথম এলিমেন্টের ইনডেক্স সবসময় শূন্য:
let numbers = [| 2; 3; 5 |]
// Update value in array
numbers[2] <- 9
// Read value from array
numbers[2]
// => 9
Array মডিউলে ডিফাইন করা ফাংশন ও অপারেটরের মাধ্যমে অ্যারে নিয়ে কাজ করা হয়। এই ফাংশনগুলোর কয়েকটি একটি array ইনস্ট্যান্সের প্রপার্টি হিসেবেও পাওয়া যায়:
Array.length [| 7; 8 |] // => 2
[| 7; 8 |].Length // => 2
এখানে সঠিক বা ভুল বলে কিছু নেই। সাধারণভাবে, Array মডিউলের ফাংশনগুলো টাইপ ইনফারেন্সের সাথে ভালোভাবে খাপ খায়, অন্যদিকে প্রপার্টিগুলো আরও সংক্ষিপ্ত কোড লেখার সুযোগ দেয়।
একটি অ্যারে প্যাটার্ন অ্যারেতে প্যাটার্ন ম্যাচিং করার সুযোগ দেয়:
let describe array =
match array with
| [| |] -> "Empty"
| [| 1; 2; three |] -> sprintf "1, 2, %d" three
| _ -> "Other"
describe [| |] // => "Empty"
describe [| 1; 2; 4 |] // => "1, 2, 4"
describe [| 5; 7; 9 |] // => "Other"
এছাড়াও, প্যাটার্ন ম্যাচিংয়ের সময় আপনি একটি মান বাদ দিতে পারেন; কোনো নির্দিষ্ট কেসে যখন একটি মানের ব্যাপারে আপনার কিছু যায় আসে না (অর্থাৎ আপনি মানটি ব্যবহার করতে যাচ্ছেন না), তখন সেটি বোঝাতে একটি আন্ডারস্কোর ('_') ব্যবহার করতে পারেন:
let describe array =
match array with
| [| |] -> "Empty array"
| [| x |] -> "Array with one item"
| [| _; y |] -> "Array with two items (first item ignored)"
| _ -> "Array with many items (all items ignored)"
describe [| |] // => "Empty array"
describe [| 1 |] // => "Array with one item"
describe [| 5; 7 |] // => "Array with two items (first item ignored)"
describe [| 5; 7; 9 |] // => "Array with many items (all items ignored)"
প্যাটার্ন ম্যাচিংয়ে একক '_' সর্বদা শেষে আসা উচিত; যে মান অন্য কোনো কেসের সাথে মেলে না, তা এই কেস দিয়েই সামলানো হবে।