প্রোগ্রামিং এর ভাষায় ফাংশন হলো একটি নির্দিষ্ট ধরনের কাজ করে এমন কতগুলো ইন্সট্রাকশনের সমষ্টি। যেমন "দেখাও()" একটি ফাংশন যার কাজ হল আউপুট কনসোলে লেখা দেখানো। অনুরুপ ভাবে আপনি চাইলে আপনার ইচ্ছা মত যে কোন কাজের জন্য ফাংশন লিখে ফেলতে পারেন ।
ধরুন আপনাকে একটি বড় প্রোগ্রাম লিখতে হচ্ছে যেখানে বার বার আপনাকে কয়েকটি সংখ্যার গড় বের করতে হবে। গড় বের করার জন্য প্রদত্ত সংখ্যাগুলোকে যোগ করে মোট যতটি সংখ্যা আছে তা দিয়ে ভাগ করলেই আমরা গড় পাই। কিন্তু প্রোগ্রামের মধ্যে যতবার আপনাকে গড় বের করতে হবে প্রতিবার তার জন্য একই ধরনের কোড বার বার লিখাটা বেশ ঝামেলা এবং সময়ের অপচয়। আর এভাবে লিখতে থাকলে প্রোগ্রামটির কোডের গঠন ও বেশ অগোছালো হয়ে যায়।
এই বিষয়টি আমরা সমাধান করতে পারি সহজেই গড় বের করার জন্য একটি ফাংশন লিখে। ফাংশন লিখলে আমরা একবারেই ঠিক করে দেব কিভাবে গড় হিসাব করতে হয় এবং তারপরে আমরা যেখানেই গড় বের করতে যাবো সেখানেই আমরা এই ফাংশনটি কল করতে পারবো এবং সহজেই গড় পেয়ে যাবো। একই সাথে আমাদের প্রোগ্রামটির কোডও বেশ গোছানো থাকবে কারণ আমরা বার বার একই ধরনের কোড লিখবো না।
// 'ফাংশন' কিওয়্যার্ড ব্যবহার করে ফাংশন ডিফাইন করা
ফাংশন ফাংশনের_নাম(প্যারামিটার){
....
ফাংশন বডি
....
রিটার্ন ভ্যালু;
}
এখানে আমাদের ফাংশনের নাম লিখতে হবে। ফাংশনের নাম হতে হবে অর্থপূর্ণ যাতে নাম দেখেই ধারনা করা যায় যে ফাংশনটি কী কাজ করবে। যেমন দুটি সংখ্যার মধ্যে বড় সংখ্যাটি বের করার জন্য যদি আমরা একটি ফাংশন লিখি তবে সেটির নাম আমরা দিতে পারি "বৃহত্তম" বা "বড়_সংখ্যা" ।
এখানে ফাংশনটি কাজ করার জন্য প্রয়োজনীয় ডাটা আমরা দেব। যেমন দেখাও() ফাংশনে আমরা কোন ডাটা দিলে প্রোগ্রামটি সেই ডাটাকে আউপুটে দেখায়। যেমন: দেখাও("হ্যালো"); আবার বৃহত্তম নির্ণয়ের জন্য ফাংশন লিখলে কোন কোন সংখ্যার মধ্যে বৃহত্তম সংখ্যা বের করতে হবে সেটি বলে দিতে হবে। প্যারামিটারের মাধ্যমে আমরা সেসব ডাটা ওই ফাংশনের কাছ পাঠাতে পারি। আবার কোনো কিছু পাঠাতে না চাইলে সেটি খালিও রাখতে পারি।
ফাংশনটি কীভাবে কী কাজ করবে সেটি বডিতে বলে দিতে হবে। মানে কোড লিখতে হবে আর কি।
ফাংশনটি কাজ শেষ করে, তাকে যে জায়গা থেকে কল করা হয়েছে সে জায়গায় ফিরে যায়। ফেরার সময় আমরা কোনো মান পাঠাতে পারি। যেমন "বৃহত্তম()" ফাংশনে আমরা চাই সে বৃহত্তম সংখ্যা বের করবে। তো বৃহত্তম সংখ্যাটি বের করে তো সেটি ফেরত পাঠাবার ব্যাবস্থা রাখতে হবে? বৃহত্তম সংখ্যাটির মান যদি "ক" হয়, তবে আমরা রিটার্ন ক; স্টেটমেন্ট দিয়ে সেটির মান ফেরত পাঠাব।
ফাংশন বয়স(){ // ফাংশনের নাম বয়স এবং ফাংশন বডিতে কোন কোড নেই
রিটার্ন ২০; // ফাংশনকে কল করলে সে রিটার্ন হিসেবে ২০ পাবে।
}
দেখাও( বয়স() ); // আউটপুট কনসোলে ২০ প্রিন্ট হবে
/*
* বৃহত্তম সংখ্যা নির্নয়ের ফাংশন
*/
ফাংশন বৃহত্তম(ক, খ){ // প্যারামিটার ক এবং খ
যদি(ক থেকে খ বড় হয়){
রিটার্ন খ;
}নাহলে{
রিটার্ন ক;
}
}
ধরি বড়_নাম্বার = বৃহত্তম(১২,৪৫); // ক=১২, খ = ৪৫
দেখাও("বৃহত্তম নাস্বার টি হল:" + বড়_নাম্বার );