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