مرحبًا بعودتك.
لنتحدث عن شيء أحبه حقًا ، ويسمى تعبيرات لامدا.
و Lambda هو في الواقع مصطلح في علوم الكمبيوتر متوافق بالفعل مع فكرة البرمجة الوظيفية.
كما ترى ، فإن تعبيرات lambda في Python هي وظائف مجهولة لمرة واحدة ولا تحتاجها أكثر من
مرة.
ماذا يعني ذلك؟
حسنًا ، تعابير لامدا مفيدة حقًا عند استخدامها لوظائف لا تستخدمها إلا مرة
واحدة.
تذكر كيف تحدثنا عن الوظائف مفيدة لأنه يمكننا تحديدها ثم استخدام هذه الوظائف
مرارًا وتكرارًا وبالتالي إنقاذنا من نسخ الشفرة ولصقها.
حسنًا ، وظائف لامدا مخصصة لتلك المناسبات التي لدينا فيها وظيفة ، لكننا نحتاج فقط إلى استخدامها مرة
واحدة.
ثم الجزء الثاني هو أنها دوال مجهولة.
هذا لأننا نستخدمها مرة واحدة فقط.
لا نحتاج إلى اسم لهم لأنني أعني ، لا نحتاج حقًا إلى تخزينها في أي مكان على
أجهزتنا.
أنا فقط أريد استخدامه مرة واحدة.
فقط قم بتشغيله ثم انتهيت منه.
فقط ارميها بعيدا.
فكيف تبدو وظيفة لامدا؟
تبدو وظيفة لامدا هكذا.
نقول لامدا في بيثون.
اسمحوا لي أن أضيف القليل من المساحة هنا فقط حتى نتمكن من رؤيتها.
نقول لامدا ويمكنك أن ترى أنها مظللة باللون الأزرق.
ثم سأقول معلمة ستحصل عليها هذه الوظيفة ، ثم نقطتان ثم نوع
من الدالة هنا.
والمعلمة.
أو بدلاً من الوظيفة ، سيكون نوعًا من التلاعب الذي نقوم به.
لنفترض أن الإجراء الذي نريد القيام به.
على المعلمة.
حسنًا ، لا يزال هذا يبدو محيرًا ، لذلك دعونا نحاول تطبيقه في وظائفنا التي أنشأناها.
لنفترض أن الضرب في اثنين هو أحد تلك الأشياء التي سنستخدمها مرة واحدة فقط.
أريد فقط الضرب في اثنين.
هذه قائمتي ثم انتهيت منها.
لست بحاجة إلى حفظه في الذاكرة.
إنه مجرد جزء إضافي من التعليمات البرمجية.
لا أحتاج هذا.
كيف يمكننا أن نفعل ذلك؟
حسنًا ، لنفترض أن لدينا وظيفة الخريطة هنا مرة أخرى ودعنا نحولها إلى قائمة.
والآن سأقوم بتقليلها.
لذا فإننا نركز فقط على الضرب في اثنين.
لنعد هنا إلى الضرب في اثنين.
تذكر كيف حصلنا عليها من قبل.
قائمتي ولا نحتاج إلى المعلمة الثالثة تمامًا من هذا القبيل.
الآن مع وظيفة lambda يمكنني القول ، مرحبًا ، لست بحاجة إلى إنشاء وظيفة جديدة بالكامل ، سأستخدمها
مرة واحدة فقط.
دعنا فقط نزيل هذا بالكامل.
وبدلاً من استخدام الضرب في اثنين ، سأقول لامدا.
وهنا سأعطيها المعلمة.
ما هي المعلمة التي سأستلمها؟
حسنًا ، سأستلم عنصرًا من قائمتي.
ثم هنا ، ماذا نريد أن نفعل لقائمتي؟
حسنًا ، أريد أن أضربه في اثنين.
حسنا.
هل يمكن أن ينجح هذا؟
لنجربها.
أنا ذاهب للجري.
قف.
هل رأيت ذلك؟
لم أستخدم حتى الضرب في اثنين.
في واقع الأمر ، يمكنني حذفه.
وإذا قمت بالنقر فوق "تشغيل" ، فسيظل كل شيء يعمل.
حاليا.
لماذا هذا؟
تذكر أن تعبيرات Lambda هي وظائف مجهولة لمرة واحدة.
لا يوجد اسم مرتبط بهذه الوظيفة.
هذه هي الوظيفة هنا.
لا تحتاج إلى الجري أكثر من مرة.
لذلك بمجرد أن يقوم المترجم الفوري بتشغيل هذا السطر من التعليمات البرمجية ، فإنه لا يتذكر ذلك.
انها فقط تنسى ذلك.
لكنها تؤدي العمل بالنسبة لنا.
في حالتنا ، نقول ، مرحبًا ، أريد إنشاء تعبير لامدا.
أنا ذاهب لأخذ عنصر من قائمتي.
ثم سأضرب هذا العنصر في اثنين وهذا سيعيده تلقائيًا مرة أخرى.
الترتيب الذي نقوم به هو لامدا إذن.
نعطيها عربة الأطفال ، كولين ، ثم الإجراء الذي نريد القيام به.
في حالتنا ، ستكون عربة أطفال.
ومهما كان العمل الذي نريد القيام به.
يحب.
لذلك في حالتنا ، العنصر مضروبًا مرتين وهذا يعود تلقائيًا.
كم ذلك رائع؟
هذه ميزة رائعة حقًا في Python للحفاظ على الكود الخاص بك لطيفًا ونظيفًا وليس فوضى مع كل
هذه الوظائف.
وقد لا تحتوي اللغات الأخرى على لامدا ، لكنها تسمى أحيانًا وظائف مجهولة.
مرة أخرى ، شيء ناقشناه لماذا هم مجهولون.
إنها تشبه الوظائف العادية وتتصرف مثلها.
لكننا نستخدمها مرة واحدة فقط وليس لها اسم.
لكن يمكنك أن ترى هنا أنه يجعل الأشياء أكثر نظافة قليلاً.
ماذا لو حاولنا عمل التصفية الآن باستخدام وظيفة لامدا؟
حسنًا ، إذا كنت تريد ، يمكنك إيقاف الفيديو مؤقتًا وتجربة نفسك.
لكن يجب أن تكون سهلة إلى حد ما ، أليس كذلك؟
إذا قمت بالتصفية.
أستطيع أن أفعل ، لامدا.
عنصر ثم عنصر.
سنقوم فقط بنسخ هذا.
إذن ، الإجراء الذي نريد اتخاذه بشأن العنصر هو هذا.
وإذا قمت بتشغيله.
ثانية.
إنها تعمل.
كم هو جميل ذلك؟
لم تعد بحاجة إلى هذه الوظيفة أيضًا.
جميل جدا جدا.
ماذا عن التقليل؟
هل يمكننا استخدام الاختزال مع لامدا؟
بالتأكيد.
لما لا؟
لنفترض هنا أننا نقول تقليل.
سنقوم بإزالة القائمة من هنا لأننا ننتج قيمة واحدة فقط.
سأقول لامدا.
تذكر العنصر تقليل يقبل المعلمات المجمع ثم العنصر.
لذا يمكنني أن أعطيها معلمتين مثل هذا ثم أقول ، ماذا نريد أن نفعل؟
حسنًا ، أريد فقط إضافة تراكم مع العنصر.
لذلك إذا قمت بعمل قائمتي هنا بهذا الشكل وقمت بالنقر فوق تشغيل.
تحقق من ذلك.
هذا يعمل كذلك.
كم ذلك رائع؟
مرة أخرى ، لم نعد بحاجة إلى المجمع والآن لدينا وظائف سطر واحد فقط يمكنني تشغيلها
وتقليل القائمة على الفور.
رائع جدا.
سنقوم باستكشاف لامبدا أكثر قليلاً ، خاصة في جزء الفهم من الدورة.
لذلك إذا كنت لا تزال غير مقدر بنسبة 100٪ عليها ، فلا تقلق ، سيكون لدينا المزيد من حالات الاستخدام ولماذا تكون مفيدة
في وقت لاحق من الدورة.
لكن تعبيرات لامدا تعجبني حقًا أنها تجعل شفرتك صغيرة جدًا حقًا.
ومع ذلك ، فإنهم يجعلون الشفرة أقل قابلية للقراءة.
لذلك فهي مقايضة حيث يمكنك أن تصبح ذكيًا حقًا مع تعبيرات لامدا ولكن تجعل الكود الخاص بك مربكًا للآخرين
حقًا.
لذلك أنت تريد أن تكون حذرا.
في الوقت الحالي ، انتهينا.
سأراك في الفيديو التالي.
مع السلامة.