ایک نام ایک کنونشن ہے جو کسی بھی ادارہ کا حوالہ یا پتہ کرنے کے لئے استعمال ہوتا ہے۔ ہمارے آس پاس کی ہر چیز کا ایک نام ہے۔ پروگرامنگ کی دنیا بھی اسی کے مطابق چلتی ہے۔ لیکن کیا ہر چیز کا نام لینا ضروری ہے؟ یا کیا آپ کے پاس ایسی کوئی چیز ہے جو صرف ‘گمنام’ ہے؟ جواب ہے ، ہاں۔ ' لامبڈا افعال مہیا کرتا ہے ، اسے گمنام افعال بھی کہا جاتا ہے جو در حقیقت نامعلوم ہیں۔ تو آئیں ، تسلسل کے ساتھ ، ازگر کے ان ‘گمنام اسرار’ کے بارے میں جاننے کے لئے آگے بڑھیں۔
- ازگر لیمبڈا افعال کی ضرورت کیوں ہے؟
- ازگر لیمبڈا افعال کیا ہیں؟
- لیمبڈا فنکشن کیسے لکھیں؟
- گمنام افعال کوڈ کے سائز کو کیسے کم کرتے ہیں؟
- ازگر لیمبڈا صارف کے متعین افعال کے اندر افعال کرتا ہے
- گمنام افعال کا استعمال کیسے کریں:
تو آئیے شروع کریں :)
ازگر لیمبڈا افعال کیوں استعمال کرتے ہیں؟
گمنام افعال کا بنیادی مقصد تصویر میں آجاتا ہے جب آپ کو صرف ایک دفعہ کسی فنکشن کی ضرورت ہوتی ہے۔ جہاں کہیں بھی ضرورت ہو انہیں تخلیق کیا جاسکتا ہے۔ اسی وجہ سے ، ازگر لیمبڈا فنکشنز کو تھرو-آف فنکشن کے نام سے بھی جانا جاتا ہے جو دوسرے وضاحتی افعال جیسے فلٹر () ، نقشہ () ، وغیرہ کے ساتھ استعمال ہوتے ہیں جب یہ موازنہ آپ کے کوڈ کی لائنوں کی تعداد کو کم کرنے میں مدد کرتا ہے۔ عام .
اس کو ثابت کرنے کے ل let ، آئیے آگے بڑھتے ہیں اور ازگر لیمبڈا کے افعال کے بارے میں جانتے ہیں۔
ازگر لیمبڈا افعال کیا ہیں؟
ازگر لیمبڈا افعال ایسے افعال ہیں جن کا کوئی نام نہیں ہے۔ وہ گمنام یا گمنام افعال کے طور پر بھی جانا جاتا ہے۔ لفظ ‘لیمبڈا’ نام نہیں ہے ، بلکہ اس کا کلیدی لفظ ہے۔ یہ مطلوبہ الفاظ کی وضاحت کرتا ہے کہ اس کے بعد آنے والا فنکشن گمنام ہے۔
اب جب آپ کو معلوم ہے کہ یہ گمنام افعال کس چیز کے حوالہ دیتے ہیں ، آئیے ہم آگے بڑھتے ہیں یہ دیکھنے کے لئے کہ آپ یہ ازگر لیمبڈا افعال کس طرح لکھتے ہیں۔
ازبر میں لیمبڈا فنکشن کیسے لکھیں؟
لیمبڈا کا ایک فنکشن لامبڈا آپریٹر کا استعمال کرکے تشکیل دیا گیا ہے اور اس کا نحو ذیل میں ہے:
سنٹیکس:
لامبڈا دلائل: اظہار
ازگر لیمبڈا فنکشن دلائل کی ایک بڑی تعداد ہو سکتا ہے لیکن یہ صرف لیتا ہے ایک اظہار آدانوں یا دلائل 0 سے شروع ہوسکتے ہیں اور کسی حد تک جاسکتے ہیں۔ بالکل ایسے ہی دوسرے کاموں کی طرح ، لیمبڈا کے فنکشنز کو رکھنا بالکل ٹھیک ہے۔ لہذا ، آپ درج ذیل میں سے کسی بھی شکل میں لامبڈا کام کرسکتے ہیں:
مثال:
لیمبڈا: 'مقصد کی وضاحت کریں'
یہاں ، لامبڈا فنکشن کوئی دلائل نہیں لے رہا ہے۔
مثال:
لیمبڈا aایک: 'a کے استعمال کی وضاحت کریںایک'
یہاں ، لیمبڈا ایک ان پٹ لے رہا ہے جو ایک ہےایک.
جاوا چار سرنی طے شدہ قیمت
اسی طرح ، آپ لیمبڈا کر سکتے ہیں aایک، کرنے کے لئے2، کرنے کے لئے3..توn.
آئیے اس کے مظاہرے کے لئے کچھ مثالیں لیتے ہیں۔
مثال 1:
a = لیمبڈا x: x * x پرنٹ (a (3))
آؤٹ پٹ: 9
مثال 2:
a = لیمبڈا x ، y: x * y پرنٹ (ا (3،7))
آؤٹ پٹ: اکیس
جیسا کہ آپ دیکھ سکتے ہیں ، میں نے یہاں دو مثالیں لی ہیں۔ پہلی مثال میں صرف ایک اظہار کے ساتھ لیمبڈا فنکشن کا استعمال ہوتا ہے جبکہ دوسری مثال میں اس میں دو دلائل پیش کیے جاتے ہیں۔ براہ کرم نوٹ کریں کہ دونوں افعال میں ایک ہی اظہار ہے جس کے بعد دلائل ملتے ہیں۔ لہذا ، لامبڈا افعال استعمال نہیں کیا جاسکتا جہاں آپ کو کثیر لائن تاثرات کی ضرورت ہو۔
دوسری طرف ، عام ازگر کے افعال اپنی فنکشن کی تعریف میں کسی بھی طرح کے بیانات لے سکتے ہیں۔
گمنام افعال کوڈ کے سائز کو کیسے کم کرتے ہیں؟
مطلوبہ کوڈ کی مقدار کا موازنہ کرنے سے پہلے ، پہلے اس کی ترکیب لکھ دیں اور اس کا موازنہ لمبدہ کے افعال کے ساتھ کریں جو پہلے بیان ہوا ہے۔
ازگر میں عام کام کی وضاحت a کے ذریعے کی جاتی ہے Def مندرجہ ذیل کلیدی لفظ:
سنٹیکس:
ڈیف فنکشن نام (پیرامیٹرز):
بیان (زبانیں)
جیسا کہ آپ دیکھ سکتے ہیں ، لیمبڈا فنکشن کے لئے درکار کوڈ کی مقدار عام افعال کے مقابلے میں کافی کم ہے۔
آئیے اب جو عام کام ہم استعمال کرتے ہیں اس کا استعمال دوبارہ کریں۔
مثال:
Def my_func (x): x * x پرنٹ واپس کریں (my_func (3))
آؤٹ پٹ: 9
جیسا کہ آپ دیکھ سکتے ہیں ، مذکورہ بالا مثال میں ، ہمیں مربع 3 کے مربع کی قیمت کا اندازہ کرنے کے لئے my_func کے اندر واپسی کا بیان درکار ہے ، اس کے برعکس ، لامبڈا فنکشن اس ریٹرن اسٹیٹمنٹ کا استعمال نہیں کرتا ، بلکہ ، گمنام فنکشن کا باڈی بڑی آن لائن کی علامت کے بعد ، فنکشن کے طور پر اسی لائن میں لکھا ہوا ہے۔ لہذا فنکشن کا سائز my_func سے چھوٹا ہے۔
تاہم ، مندرجہ بالا مثالوں میں لامبڈا کے افعال کو ، کچھ اور استعمال کرتے ہوئے کہا جاتا ہے a. یہ اس لئے کیا گیا ہے کہ یہ افعال نامعلوم ہیں اور اس ل some کچھ نام پکارنے کی ضرورت ہے۔ لیکن ، یہ حقیقت الجھن میں پڑ سکتی ہے کہ جب آپ کو واقعتا some ان کو فون کرنے کے لئے کوئی دوسرا نام تفویض کرنے کی ضرورت ہو تو ایسے نامعلوم کاموں کو کیوں استعمال کریں؟ اور ظاہر ہے ، میرے فنکشن کو نام تفویض کرنے کے بعد ، وہ اب گمنام نہیں رہتا ہے! ٹھیک ہے؟
یہ ایک جائز سوال ہے ، لیکن بات یہ ہے کہ یہ ان گمنام افعال کو استعمال کرنے کا صحیح طریقہ نہیں ہے۔
گمنام افعال دوسرے کے اندر بہترین استعمال ہوتے ہیں اعلی آرڈر کے افعال یا تو وہ کسی فنکشن کو بطور دلیل استعمال کریں یا ، فنکشن کو آؤٹ پٹ کے طور پر واپس کردیں۔ اس کے مظاہرے کے ل us ، آئیے اب اپنے اگلے عنوان کی طرف چلیں۔
ازگر لیمباڈا صارف کے متعین افعال میں کام کرتا ہے:
مذکورہ بالا کی طرح ، لیمبڈا کے افعال کو دوسرے کاموں میں استعمال کیا جاتا ہے تاکہ وہ بہترین فائدہ اٹھاسکیں۔
درج ذیل مثال میں new_func پر مشتمل ہے جو ایک عام ازگر کا فعل ہے جو ایک دلیل x لیتا ہے۔ اس دلیل کو پھر کچھ نامعلوم دلیل y میں شامل کیا جاتا ہے جو لیمبڈا فنکشن کے ذریعہ فراہم کیا جاتا ہے۔
مثال:
Def new_func (x): واپسی (lambda y: x + y) t = new_func (3) u = new_func (2) پرنٹ (ٹی (3)) پرنٹ (u (3))
آؤٹ پٹ:
ہاڈوپ میپریڈس کے مقابلے میں اپاچی چنگاری
6
5
جیسا کہ آپ دیکھ سکتے ہیں ، مذکورہ بالا مثال میں ، لیمبڈا فنکشن جو new_func کے اندر موجود ہوتا ہے اس کو کہا جاتا ہے جب بھی ہم new_func () کا استعمال کرتے ہیں۔ ہر بار ، ہم دلائل کو الگ الگ اقدار دے سکتے ہیں۔
اب جب کہ آپ نے اعلی ترتیب والے افعال کے اندر گمنام افعال استعمال کرنے کا طریقہ دیکھ لیا ہے ، آئیے اب ہم اس کے ایک مقبول ترین استعمال کو سمجھنے کے لئے آگے بڑھیں جو فلٹر () ، نقشہ () ، اور () طریقوں کو کم کرتے ہیں۔
فلٹر () ، نقشہ () اور کم () میں گمنام افعال استعمال کرنے کا طریقہ:
اندر گمنام افعال فلٹر ():
فلٹر ():
فلٹر () کا طریقہ کار دوسرے عناصر کی مدد سے دیئے گئے تکراری (فہرست ، سیٹ ، وغیرہ) کو فلٹر کرنے کے لئے استعمال ہوتا ہے ، جو ایک دلیل کے طور پر منظور کیا جاتا ہے ، تاکہ تمام عناصر کو یہ سچو یا غلط ثابت کیا جاسکے۔
اس فنکشن کا نحو یہ ہے:
سنٹیکس:
فلٹر (تقریب ، تکراری)
اب مندرجہ ذیل مثال پر غور کریں:
مثال:
my_ list = [2،3،4،5،6،7،8] new_list = list (فلٹر (lambda a: (a / 3 == 2)، my_list)) پرنٹ (new_list)
آؤٹ پٹ: [6]
یہاں ، my_list تکرار کرنے والے اقدار کی ایک فہرست ہے جو فلٹر فنکشن میں منتقل کی جاتی ہے۔ یہ فنکشن لامبڈا فنکشن کو چیک کرنے کے ل uses استعمال کرتا ہے کہ آیا اس لسٹ میں کوئی قدر موجود ہے ، جو 3 کے ساتھ تقسیم ہونے پر 2 کے برابر ہوگی۔ آؤٹ پٹ اس فہرست پر مشتمل ہے جو گمنام فنکشن میں موجود اظہار کو مطمئن کرتی ہے۔
نقشہ ():
ازگر میں نقشہ () فنکشن ایک ایسا فنکشن ہے جو دیئے گئے فنکشن کو تمام تکرار کرنے والوں پر لاگو ہوتا ہے اور ایک نئی فہرست لوٹاتا ہے۔
سنٹیکس:
نقشہ (تقریب ، تکراری)
جاوا میں کیا شامل ہے؟
آئیے نقشہ () فنکشن کے اندر لیمبڈا افعال کے استعمال کو ظاہر کرنے کے لئے ایک مثال پیش کرتے ہیں۔
مثال:
my_list = [2،3،4،5،6،7،8] new_list = list (نقشہ (لامبڈا اے: (a / 3! = 2)، لی)) پرنٹ (new_list)
آؤٹ پٹ:
[سچ ، سچ ، سچ ، سچ ، جھوٹا ، سچ ، سچ]
مندرجہ بالا آؤٹ پٹ سے پتہ چلتا ہے کہ ، جب بھی تکراریوں کی قیمت 3 کے ساتھ تقسیم ہونے پر 2 کے برابر نہیں ہوتی ہے ، تو نتیجہ لوٹا ہونا چاہئے۔ لہذا ، my_list میں موجود تمام عناصر کے ل it ، یہ درست ہوجاتا ہے سوائے اس کی قیمت 6 کے جب حالت غلط ہوجاتی ہے۔
کم():
کم () فنکشن کسی دوسرے فنکشن کو عناصر کی فہرست میں لاگو کرنے کے لئے استعمال ہوتا ہے جو اس کو پیرامیٹر کے طور پر منظور کیا جاتا ہے اور آخر میں اس کی ایک ہی قیمت لوٹاتا ہے۔
اس فنکشن کا ترکیب مندرجہ ذیل ہے۔
سنٹیکس:
کم کریں (تقریب ، ترتیب)
مثال:
فنکٹولس امپورٹ سے کمی کو کم کریں (لیمبڈا اے ، بی: ا + بی ، [23،21،45،98])
مندرجہ بالا مثال مندرجہ ذیل تصویر میں پیش کی گئی ہے:
آؤٹ پٹ: 187
آؤٹ پٹ واضح طور پر ظاہر کرتا ہے کہ فہرست کے تمام عناصر ہیں مسلسل شامل حتمی نتیجہ واپس کرنے کے لئے.
اس کے ساتھ ، ہم اس مضمون کو ’’ ازگر لمبڈا ‘‘ کے آخر میں پہنچتے ہیں۔ امید ہے کہ آپ کے ساتھ جو کچھ آپ نے شیئر کیا ہے اس سے آپ صاف ہیں۔ یقینی بنائیں کہ آپ زیادہ سے زیادہ مشق کریں اور اپنے تجربے کو پلٹائیں۔
ہمارے لئے ایک سوال ہے؟ برائے مہربانی اس 'ازگر لیمبڈا' بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد از جلد آپ کے پاس مل جائیں گے۔
اس کی مختلف ایپلیکیشنز کے ساتھ ازگر میں گہرائی سے آگاہی حاصل کرنے کے ل you ، آپ براہ راست داخلہ لے سکتے ہیں 24/7 کی حمایت اور زندگی بھر تک رسائی کے ساتھ۔