Functions As Recipes
فنکشن ایک محفوظ نسخہ ہے۔ آپ ایک بار لکھتے ہیں۔ نام دیتے ہیں۔ اس کے بعد پروگرام میں کہیں بھی نام پکار کر نسخہ چلا سکتے ہیں۔ فنکشن کے بغیر ہر دلچسپ پروگرام پانچ ہزار سطروں کی تکرار ہوتا۔ ان کے ساتھ پانچ ہزار سطر کا پروگرا…
اس کو سمجھنے کا ایک سے زیادہ طریقہ ہے۔ اگر آپ کو صرف ایک طریقہ سکھایا گیا ہے تو آپ کو حق سے کم سکھایا گیا ہے۔
اس کو سمجھنے کا ایک سے زیادہ طریقہ ہے۔ اگر آپ کو صرف ایک طریقہ سکھایا گیا ہے تو آپ کو حق سے کم سکھایا گیا ہے۔
فنکشن ایک محفوظ نسخہ ہے۔ آپ ایک بار لکھتے ہیں۔ نام دیتے ہیں۔ اس کے بعد پروگرام میں کہیں بھی نام پکار کر نسخہ چلا سکتے ہیں۔ فنکشن کے بغیر ہر دلچسپ پروگرام پانچ ہزار سطروں کی تکرار ہوتا۔ ان کے ساتھ پانچ ہزار سطر کا پروگرام شاید چالیس نام والے نسخوں میں سمٹ جاتا ہے، جو مختلف ترکیبوں میں ایک دوسرے کو بلاتے ہیں۔ پہلے مہینے کے بعد پروگرامنگ کا فن زیادہ تر اسی فن کا نام ہے کہ کس چیز کو فنکشن کے اندر رکھنا ہے اور کیا نام دینا ہے۔
کسی بھی پاکستانی باورچی خانے کی سب سے صاف مثال پراٹھے کا نسخہ ہے۔ دادی کو ایک بناتے ہوئے دیکھیں۔ ہر بار قدم وہی ہوتے ہیں۔ نرم آٹے کا ایک پیڑا۔ بیلن سے بیلیں۔ اوپر گھی لگائیں۔ کونے اندر کی طرف موڑیں۔ دوبارہ بیلیں۔ گرم توے پر ڈالیں۔ بلبلے آنے پر پلٹیں۔ بھورے داغ آنے تک پکائیں۔ نسخے کا ایک نام ہے، پراٹھا بنانا، اور ایک آؤٹ پٹ، ایک پکا ہوا پراٹھا۔ دس پراٹھے چاہئیں تو دادی نسخہ دس بار چلاتی ہیں۔ ساتویں پراٹھے پر دوبارہ ایجاد نہیں کرتیں۔ Python میں فنکشن بالکل ایسا ہی نظر آتا ہے۔
Replit کھولیں۔ لکھیں، def banana_paratha(): پھر اگلی سطر میں اندر کر کے print("آٹا گولہ لو")، اور ہر قدم کے لیے کئی اور print سطریں۔ فنکشن کی تعریف کے بعد، نئی سطر پر، banana_paratha() لکھیں۔ چلائیں۔ آٹھ قدم چھپ جاتے ہیں۔ اب banana_paratha() تین بار اور لکھیں۔ چلائیں۔ چوبیس قدم چھپتے ہیں، چار پراٹھوں کے لیے۔ فنکشن چار بار چلا۔ آپ نے دوبارہ نہیں لکھا۔ یہی پہلا چکھنا ہے کہ فنکشن کیوں طاقتور ہیں۔ نسخہ ایک بار جیتا ہے۔ اس کا استعمال لامحدود ہے۔
ایک دوسری مثال، کاروبار کے قریب۔ کراچی کا جماعت نہم کا طالب علم سلمان، ہر ہفتے گھر کے باہر لیمونیڈ کا اسٹال لگاتا ہے۔ وہ ایک گلاس کے ساٹھ روپے لیتا ہے۔ تین لیموں، دو چمچ چینی، اور برف لگاتا ہے۔ اسے کسی بھی ہفتے کے لیے یہ جاننا ہے کہ کتنا کمایا اور لاگت کے بعد منافع کتنا بچا۔ یہ جملہ ہی فنکشن ہے۔ وہ اسے kamaai_aur_munafa کہتا ہے۔ یہ glasses_sold اور cost_per_glass ان پٹ لیتا ہے۔ revenue اور profit واپس کرتا ہے۔ وہ ہر ہفتے کی شام چلاتا ہے۔ ایک ہی فنکشن، مختلف ان پٹ، ہر ہفتے مختلف آؤٹ پٹ۔ گرمی کے اختتام تک اس کے پاس ڈیٹا کی تیرہ سطریں ہوں گی، سب ایک چھوٹے سے فنکشن سے، جو پندرہ منٹ میں لکھا گیا۔
فنکشن لکھنے کا سب سے اہم اصول ہے، ایک کام اچھے سے کرو۔ bake_paratha نام کا فنکشن صرف پراٹھا پکائے۔ وہ آٹا گوندھنے، میز لگانے، اور بچوں کو ناشتے پر بلانے کا کام نہ کرے۔ آپ کا فنکشن اگر پانچ کام کرتا ہے تو اسے پانچ چھوٹے فنکشنز میں توڑ دیں۔ چھوٹے ٹکڑے ٹیسٹ، ڈیبگ، اور شیئر کرنے میں آسان۔ یہ اصول، single responsibility، وہی ہے جو اچھا ریستوران اپناتا ہے، باورچی کا ایک کام، ویٹر کا دوسرا، برتن دھونے والے کا تیسرا۔ کردار صاف۔ غلطیاں جلدی پکڑی جاتی ہیں۔ تصور کریں ایک باورچی خانہ جہاں ایک شخص سب کچھ خراب کرتا ہے، اور آپ کو سمجھ آ جائے گی کہ deadline سے پہلے رات کو ٹوٹنے والا کوڈ کیسا ہوتا ہے۔
اختتامی خیال۔ فنکشن اہم اس لیے ہیں جس وجہ سے نسخے اہم ہیں۔ یہ علم کو آگے پہنچنے دیتے ہیں۔ دادی کا پراٹھے کا نسخہ گھر سے باہر اس وقت جاتا ہے جب وہ بہو، کام والی، پوتی، یا سیکھنے کی خواہش مند ایک سہیلی کو سکھاتی ہیں۔ فنکشن آپ کے کوڈ کو اسی طرح زیادہ لوگوں تک پہنچاتا ہے۔ ایک بار لکھ کر اچھا نام دے دیں تو دوست کا پروجیکٹ، کالج کا کام، یا اسلام آباد کے I9 مرکز میں کوئی اسٹارٹ اپ سب اسے کاپی کر سکتے ہیں۔ آپ کی ایک بار کی محنت ہر بار آپ کا نام پکارے جانے پر لوٹ آتی ہے۔ دنیا واقعی اسی طرح بنتی ہے۔
تخمینی وقت: 13 منٹ