স্কুলপড়ুয়াদের অনেকের কাছেই ফাংশন নামটা রীতিমতো ভয়ের বিষয়। সেই ভয় ভাঙাতেই আজকের পর্ব। চলো, আমরা একটু জানার চেষ্টা করি, ফাংশন জিনিসটা আসলে কী? আসলে কী বোঝায় f(x), g(x) দিয়ে। আর কেনই–বা আমরা এই ফাংশন পড়ি।
আমরা গণিতে অনেক অপারেটর ব্যবহার করি। যেমন যোগ, বিয়োগ, গুণ, ভাগ। এসব দুটি সংখ্যা নিয়ে কাজ করে নতুন একটা সংখ্যা আমাদের আউটপুট হিসেবে দিয়ে থাকে।
আবার মেশিন যেমন কোনো কিছু ইনপুট হিসেবে নিয়ে আমাদের অন্য কিছু আউটপুট দিয়ে থাকে, গণিতের দুনিয়ায় ফাংশনও সে রকম কাজ করে। তবে ফাংশনের আছে দুটি বিশেষ বৈশিষ্ট্য। এই মেশিনের প্রথম বৈশিষ্ট্য হলো, মেশিনে একটি ইনপুট দিলে সব সময় একটি আউটপুট আসবে। কখনোই একাধিক আউটপুট পাওয়া যাবে না।
আচ্ছা এবার ভাবো তো, তুমি দোকানে কোনো মেশিন কিনতে গেলে সবার প্রথমে কী জানতে চাইবে? প্রথমেই হয়তো জানতে চেষ্টা করবে যে এই মেশিন দিয়ে আসলে কী তৈরি করা যায়, যেটাকে আমরা বলি আউটপুট। আর মেশিনে কিছু তৈরি করতে হলে কী কী জিনিস মেশিনের মধ্যে দিতে হবে, সেটাকে আমরা বলি ইনপুট। আর ফাংশনও যেহেতু গণিতের একটা মেশিন, তাহলে প্রথমে এই মেশিনের মধ্যে কী কী ইনপুট দিতে পারব আর কী কী আউটপুট পাওয়া যাবে, সেটা জানতে হবে।
এখন যেসব জিনিসকে ইনপুট হিসেবে নিতে পারব, তাদের একটা সেটের মধ্যে রাখি। ভাবছ, সেট আবার কী জিনিস! বাড়িতে দেখবে একেকটা ঝুড়িতে একেকটা জিনিস, যেমন ফলমূল, চাল, পেঁয়াজ আরও অনেক কিছু রাখি। সে রকম সেট হচ্ছ একই রকম বিভিন্ন জিনিস, যেমন সংখ্যা,অক্ষর ইত্যাদি রাখার জন্য গণিতের বিশেষ ঝুড়ি।
তাহলে এসব ইনপুটকে একটা সেটে রাখা যায়, যাকে আমরা বলি ডোমেইন। আর আউটপুট হতে পারে এ রকম সব কটিকেও আরেকটা সেটে রাখা যায়, যাকে আমরা বলি কো-ডোমেইন। এখানে একটা ব্যাপার খেয়াল রাখবে। কো-ডোমেইনের মধ্যে যারা থাকবে, তাদের সবাইকেই যে মেশিনের আউটপুট হিসেবে আসতে হবে, তা কিন্তু নয়। এখানে এমন কিছু জিনিসও থাকতে পারে, যাদের আমরা কোনোদিনও এই মেশিনের আউটপুট হিসেবে পাব না।
আচ্ছা, এখন দেখে নিই ফাংশনের দ্বিতীয় বৈশিষ্ট্য। সেটা হলো, ডোমেইনের মধ্যে শুধু তারাই থাকবে, যাদের ইনপুট দিলে কো-ডোমেইন সেটের কাউকে না কাউকে আউটপুট হিসেবে পাওয়া যাবে। যদি ডোমেইন সেটের মধ্যে এমন কেউ থাকে, যার জন্য কোনো আউটপুট কো-ডোমেইন সেটে নেই, তাহলে আর সেই মেশিনকে আমরা ফাংশন বলতে পারব না।
ভাবছ ব্যাপারটা কী তাহলে?
শুরুতে বললাম, ডোমেইনের মধ্যে শুধু তাদের নেব, যাদের জন্য আউটপুট পাব। আবার পরে বললাম, ডোমেইনের সবার জন্য যদি আউটপুট পাওয়া না যায়, তাহলে সেটা ফাংশন হবে না!
ব্যাপার আর কিছুই না, আমরা চাইলে সহজেই যেকোনো মেশিনকে ফাংশন হিসেবে তৈরি করতে পারব। যাদের ইনপুট হিসেবে নিলে আউটপুট পাওয়া যাবে, তাদেরই শুধু ডোমেইনে নেব আর আউটপুটে পাওয়া যেতে পারে এমন সবাইকে নিয়ে কো-ডোমেইন সেট বানাব। ব্যাস! আমাদের ফাংশন তৈরি!
তাহলে এসব ইনপুটকে একটা সেটে রাখা যায়, যাকে আমরা বলি ডোমেইন। আর আউটপুট হতে পারে এ রকম সব কটিকেও আরেকটা সেটে রাখা যায়, যাকে আমরা বলি কো-ডোমেইন। এখানে একটা ব্যাপার খেয়াল রাখবে। কো-ডোমেইনের মধ্যে যারা থাকবে, তাদের সবাইকেই যে মেশিনের আউটপুট হিসেবে আসতে হবে, তা কিন্তু নয়। এখানে এমন কিছু জিনিসও থাকতে পারে, যাদের আমরা কোনোদিনও এই মেশিনের আউটপুট হিসেবে পাব না।
এখানে, ডোমেইন সেট হিসেবে X আর কো-ডোমেইন সেট হিসেবে Y নির্ধারিত আছে। কিন্তু X সেট থেকে ৩ ও ৪–এর জন্য কোনো আউটপুট নেই। আবার ২ ইনপুট দিলে B ও C দুটো আউটপুট পাওয়া যায়। তাহলে দেখা যাচ্ছে, এই মেশিনের প্রথম ও দ্বিতীয় বৈশিষ্ট্য কোনোটাই নেই। তাই এটা ফাংশন হবে না।
এখানেও ডোমেইন ও কো-ডোমেইন নির্ধারিত। তবে ডোমেইন সেট X–এর সবার জন্য কেবল একটা করেই আউটপুট আছে। আবার X সেটে এমন কেউ নেই, যার কোনো আউটপুট নেই। সুতরাং, এটা ফাংশনের দুটি শর্তই মেনে চলছে। তাই এটি ফাংশন হবে। তাহলে আশা করি, এতক্ষণে ফাংশন নিয়ে একটু হলেও ধারণা হয়েছে। আমরা পরবর্তী সময়ে জানার চেষ্টা করব, এত কষ্ট করে যে ফাংশন শিখলাম, এটা দিয়ে কী কী হয় আসলে! আমাদের বাস্তব জীবনে এটা কী কী কাজে লাগে?