SL3 Framework

Functions

এই পেজ এখনো আপডেট করা হয় নি। এখানে আমাদের পুরাতন রিসার্সের আর্টিকেল দেওয়া আছে। খুব দ্রুতই এই পেজের কাজ সম্পন্ন করে আপডেট করা হবে। দয়া করে একটু ধৈর্য্য ধরুন।

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

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

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

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

অনেক কষ্ট করার পরে প্রায় তিন ঘণ্টা লাগাতার পরিশ্রম করার পরে বিরিয়ানি প্রস্তুত। চেহারা দেখে বোঝার উপায় নেই যে এটা বিরিয়ানি হয়েছে না অন্য কিছু। তবে রিজুয়ান সাহেব অনেক খুশি। এত দিন সে অন্যের হাতের বিরিয়ানি খেয়ে অনেক প্রশংসা করেছেন। আজকে প্রথমবারের মতো নিজের হাতে বিরিয়ানি রান্না করলেন। বার বার তার নিজের রান্না করা বিরিয়ানির দিকে তাকাচ্ছেন, ছবি তুলছেন। 'No Team' এর সবাইকে ট্যাগ করে ফেসবুকে ছবিও পাবলিশ করেছেন। তার মন চাচ্ছে 'No Team' এর সকল মেম্বারকে ডেকে দেখাতে এবং মন ভরে খাওয়াতে। 'No Team' কে সে অনেক মিস করছে। টিমের কথা চিন্তা করতে করতেই সে প্রথমবারের মতো খাবার মুখে দিলো। খাবার মুখে দেওয়ার সাথে সাথেই সে ফেসবুক ওপেন করে নিজের প্রোফাইলে গেলো। দেখলো এখনো খুব বেশি রিয়েকশন আসে নি, মাত্র ১৫ টা রিয়েকশন। কোনো কিছু না ভেবেই সে পোষ্টটা ডিলিট করে দিল। এর পরে তার বিরিয়ানির দিকে তাকিয়ে ভাবতে থাকলো, মনের খুদা তো মিটেছে কিন্তু পেটের খুদা মেটাবো কিভাবে!

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

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

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

ফাংশনের ভিতরে আবার যেকোনো কিছুই করা যায়। ভ্যারিয়েবল ডিক্লেয়ার করা যায়, স্টেটেমেন্ট লেখা যায়, কন্ডিশন, লুপ সব কিছু নিয়েই কাজ করা যায়। আর একটা ফাংশনের উদাহরণ দিয়ে ব্যাপারটা বোঝা যাক। রিজুয়ান সাহেব খাবার গরম করার জন্য ওভেন এ খাবারটা দিয়ে ১ মিনিটের জন্য টাইমার সেট করে দিলো। এখানে ওভেন একটা ফাংশন যে ঠাণ্ডা খাবার ইনপুট হিসেবে নিচ্ছে এবং গরম খাবার আউটপুট দিচ্ছে। এই ফাংশনের ভিতরে কিন্তু একটা লুপ এবং একটা কন্ডিশন রয়েছে। ১ মিনিট বা ৬০ সেকেন্ড ওভেন চলবে এটা হচ্ছে একটা লুপ। সময়টা কাউন্ট করার জন্য অবশ্যই লুপ লাগবে। আবার ওভেন চালু থাকা অবস্থাতে আমরা স্টপ বাটনে প্রেস করে ওভেন থামিয়ে দিতে পারি। তাই এখানে একটা কন্ডিশন কাজ করছে যে স্টপ বাটনে প্রেস হয়েছে কি না? যদি স্টপ বাটনে প্রেস করা হয় তাহলে ওভেন থেমে যাবে না হলে চলতে থাকবে।

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

Edit this page on GitHub