‫مرحبًا بعودتك.
‫أريد أن أتحدث إليكم عن بعض الوظائف المفيدة التي نحصل عليها والتي تسمح لنا بالفعل بالتفكير في نموذج
‫برمجة وظيفي.
‫اسم هذه الوظائف هو مرشح الخريطة.
‫أَزِيز.
‫وتقليل.
‫وهذه وظائف مفيدة جدًا وشائعة جدًا ستكتبها كثيرًا عندما تكون مبرمجًا في بايثون.
‫لذلك دعونا نستكشفها.
‫أولاً ، سنبدأ بالخريطة.
‫تسمح لنا الخريطة في الواقع بتبسيط الشفرة التي لدينا هنا وهي الضرب في اثنين.
‫كما ترى مع الخريطة ، لديّها متوفرة كوظيفة ، كوظيفة مضمنة.
‫ونلاحظ هنا أننا نعطي المعلمة الأولى دالة ، ثم المعامل الثاني قابل للتكرار.
‫من الطرق الجيدة للتفكير في الأمر أننا نريد اتخاذ نوع من الإجراءات هنا.
‫إذن وظيفة ثم البيانات التي نريد اتخاذ إجراء بشأنها.
‫لنفترض في حالتنا ، واحد ، اثنان ، ثلاثة.
‫إذن ما هو الإجراء الذي نريد أن نتخذه؟
‫واحد اثنين ثلاثة.
‫حسنًا ، نريد الضرب في اثنين ، فلنفترض أن الضرب.
‫من قبل اثنين.
‫الآن يجب أن أنقل هذا لأسفل لأنه يتعين علينا تحديد الوظيفة أولاً.
‫وتشغيلها هكذا.
‫لذا بدلاً من طباعة هذا ، دعنا نفعل.
‫مطبعة.
‫مثل هذا إذا قمت بتشغيله.
‫أحصل على كائن خريطة في موقع الذاكرة هذا.
‫وتعطينا MAP تلقائيًا هذا الكائن الذي تم إنشاؤه في هذه الذاكرة.
‫حتى نتمكن من مشاهدته فعليًا ، علينا تحويله إلى قائمة مثل هذه.
‫لذلك إذا قمت بتشغيل هذا.
‫تقول on line for int'l object غير قابل للتكرار.
‫حسنًا ، لأنه مع الخريطة لم نعد بحاجة إلى إنشاء قائمة كهذه بدلاً من إلحاقها بقائمة.
‫كما ترى ، الشيء الجميل في الخريطة هو أنني أعطيها بعض البيانات ثم يتم التعامل مع هذه البيانات من خلال
‫هذا.
‫وكل ما علينا فعله باستخدام دالة الخريطة هو الحصول على دالة ترجع.
‫هذا الجزء عنصر مرتين.
‫لذا فبدلاً من الحصول على كل هذه الشفرة ، كل ما نحتاج إليه هو أن نقول العودة.
‫العنصر.
‫ضرب اثنين.
‫لذلك دعونا نغير هذه المعلمة إلى عنصر.
‫وانظر إلى الكود بمزيد من التفصيل.
‫إذن مع الخريطة أقول ، مرحبًا ، أريدك أن تشغل الوظيفة.
‫اضرب في اثنين.
‫لاحظ هنا أنني لا أمتلك حتى الأقواس لأنني لست بحاجة إلى تسميتها خريطة تفعل ذلك بالنسبة لي.
‫الخريطة تقول فقط ، مرحبًا ، فقط أعطني الوظيفة ، سأعتني بالباقي.
‫لذلك أنا لا أستدعي الوظيفة هنا.
‫ستستدعي الخريطة الوظيفة بالنسبة لي.
‫أنا فقط أقول ، مهلا ، عندما اتصل بالخريطة مثل هذه.
‫أريدك أن تستخدم هذه الوظيفة في عنوان الذاكرة هذا وأن تستخدم هذه البيانات.
‫تذكر نموذج البرمجة الوظيفية لدينا.
‫لدينا بيانات يتم التعامل معها ، لذلك نفصل هذين الاثنين.
‫ستأخذ هذه الوظيفة الآن كل عنصر من العناصر في فتراتنا.
‫في حالتنا ، ستكون المرة الأولى حول العنصر واحد ، ثم اثنان ، ثم ثلاثة.
‫وبعد ذلك ، كل ما علينا فعله هو إعادة التأثير الذي نريده على هذا العنصر.
‫في حالتنا ، إنها اثنان.
‫لذلك من خلال القيام بهذه الخريطة ، تقوم تلقائيًا بتشغيل هذه الوظيفة لنا وتقوم بالتكرار عبر جميع العناصر الموجودة
‫في العنصر التكراري وتُعيد لنا كائن خريطة جديدًا سنقوم بتحويله إلى قائمة إذا قمت بتشغيل هذا.
‫أحصل على اثنين لستة؟
‫الآن ، ها هو الجزء الأنيق.
‫إذا فعلت ذلك ، دعنا نقول قائمتي وأقول ، واحد ، اثنان ، ثلاثة.
‫وقمت بتغيير قائمتي هنا.
‫مثله.
‫وفي النهاية ، اطبع قائمتي أيضًا.
‫إذا قمت بالنقر فوق تشغيل.
‫سترى أن قائمتي لم تتغير.
‫تذكر؟
‫الوظيفة الصرفة هي وظيفة لا تؤثر على العالم الخارجي.
‫وبهذه الطريقة تسمح لنا خريطة الطريق بإنشاء قائمة جديدة كاملة.
‫هذا لا يعدل قائمتي.
‫لذا فإن قائمتي غير قابلة للتغيير ، أليس كذلك؟
‫نحن لا نغيره.
‫وكل ما تفعله هو وظيفة الخريطة ، وتعتني بها وتعيد قائمة جديدة لنا.
‫لكننا لا نؤثر على العالم الخارجي.
‫لا توجد آثار جانبية لهذه الوظيفة.
‫نحن ببساطة نقوم بضرب عنصر في عنصر في اثنين ، ولكن نقوم بإنشاء قائمة جديدة من هذا العنصر.
‫وفي كل مرة نعطيها نفس المدخلات ، فإنها ستنتج نفس المخرجات.
‫رائع جدا.
‫والخريطة مفيدة للغاية لأنه في أي وقت يكون لدينا شيء يمكننا التكرار عليه ونريد
‫تغييره.
‫لنفترض أن لدينا رسائل بريد إلكتروني أو أسماء مستخدمين ونحتاج إلى تحديث أسماء المستخدمين بحيث تكون كلها ، على سبيل المثال ، بأحرف
‫كبيرة.
‫في هذه الحالة ، يمكننا تكرار واستخدام وظيفة الخريطة ، وتغيير جميع أسماء المستخدمين في قائمتنا لنفترض
‫، بأحرف كبيرة.
‫ستكون MAP واحدة من تلك الوظائف التي تستخدمها كثيرًا في حياتك المهنية في البرمجة.
‫وآمل أن ترى هنا كم هو نظيف ولطيف ، مرة أخرى ، باستخدام نماذج البرمجة الوظيفية.
‫دعنا ننتقل إلى المرحلة التالية.
‫دعنا نتحدث عن عامل التصفية.
‫التالي.