আজকে আমি জাভাস্ক্রিপ্ট এর ফার্স্ট ক্লাস ফাংশন এবং হাইয়ার অর্ডার ফাংশন নিয়ে কথা বলবো এবং সাথে উদাহরণসহ কিছু ফাংশন তুলে ধরবো যেগুলো থেকে ক্লিয়ার ধারণা পাওয়া যাবে। সবশেষে হাইয়ার অর্ডার ফাংশন ম্যাপ()এর ইউসেজ দেখাবো।

জাভাস্ক্রিপ্ট এ ফাংশন কে ফার্স্ট ক্লাস ফাংশন বলা হয়? এখন কথা হলো ফার্স্ট ক্লাস ফাংশন কি?

ফার্স্ট ক্লাস ফাংশনকে আপনি অন্যকোনো ফাংশনের আর্গুমেন্ট হিসেবে পাস করতে পারবেন, এক ফাংশন থেকে আরেকটা ফাংশন রিটার্ন করতে পারবেন। আর সবচেয়ে মজার ব্যাপার হলো ফাংশনকে ভ্যারিয়েবল হিসাবেও স্টোর করতে পারবেন।

ফাংশনকে আর্গুমেন্ট হিসেবে পাস করাঃ

দেখলেন তো!

ফাংশন থেকে ফাংশন রিটার্ন করাঃ

ফাংশনকে ভ্যারিয়েবল হিসাবে স্টোর করাঃ

এখন কথা হলো ফাংশন ফার্স্ট ক্লাস হওয়াতে সুবিধা কি? হ্যা এগুলা অনেক কাজে এমনিতে আসবে যেহেতু আমরা ফাংশনগুলো অনেকরকম ভাবে ব্যবহার করতে পারতেছি। কিন্তু তাছাড়াও আমরা ফাংশনাল প্রোগ্রামিং এর কথা জানি। ফাংশনাল প্রোগ্রামিং হলো প্রোগ্রামিং ল্যাঙ্গুয়েজের ভবিষ্যৎ।

ফাংশনাল প্রোগ্রামিং এ হাইয়ার অর্ডার ফাংশন ইউজ করা হয় যেখানে ফার্স্ট ক্লাস এর কন্সেপ্ট খুবই ইম্পরট্যান্ট। হাইয়ার অর্ডার ফাংশনে আমরা একটা ফাংশনে আরেকটা ফাংশন আর্গুমেন্ট হিসেবে পাস করতে পারি, ফাংশন থেকে ফাংশন রিটার্ন করতে পারি। তো এগুলা সবই আসলে ফার্স্ট ক্লাস ফাংশনের আইডিয়া। তাই আমরা বলতে পারি ফাংশানাল প্রোগ্রামিং এর জন্যে ফার্স্ট ক্লাস ফাংশন খুবি গুরুত্বপূর্ন। আর এই আইডিয়া থেকেই কিছু হাইয়ার অর্ডার ফাংশন যেমনঃ ম্যাপ(), ফিল্টার(), রিডিউস() ছাড়াও আরো অনেক হাইয়ার অর্ডার ফাংশনগুলো এসেছে। এগুলো আসলে আলাদা করে ডিসকাস করতে হবে। তারপরেও আমি ম্যাপ() এর খুবই সিম্পল একটা ইউসেজ দিলাম নিচে।

ম্যাপ() এর ইউসেজঃ

ম্যাপ একটা হাইয়ার অর্ডার ফাংশন আর আমার মতে সবচেয়ে বেশী ইউসড একটা ফাংশন। এর কাজ হচ্ছে একটা অ্যারের সবগুলা আইটেম নিয়ে সেগুলার উপরে স্পেসেফিক কোনো ফাংশন অ্যাপ্লাই করে। ধরি আমার কাছে একটা অ্যারে আছে এখন আমি অ্যারের সবগুলো আইটেমের সাথে ২ গুণ করতে চাই। ম্যাপ() ছাড়া আমাদের যা করতে হতোঃ

এবার ম্যাপ ইউজ করেঃ

Same Output

আর ES6 সিনট্যাক্স ইউজ করলে এটার অবস্থা কি হয় দেখেনঃ

সেইম আইটপুট

এবার দেখুন কতটা ফ্লেস্কিবল এই ধরনের ফাংশন ইউজ করা আর কতো শর্টকাটে আপনার কাজ সেরে ফেলতে পারতেছেন।

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


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

Comments

comments