سؤال

وأنا أعلم عن خريطة / تقليل alghoritm واستخدامها. انها تستخدم الوظائف التي دعا المخططون والمسننات، ولكن أنا أيضا العثور على الناس استخدام كلمة مرشحات.

هل مرشحات نفس المخططون أو أن هناك بعض الفرق كبير؟

هل كانت مفيدة؟

المحلول

ومرشح يشبه الخريطة للحصول على أي وظيفة مرت هي دائما "وظيفة مميزة"، وهذا هو دالة تقوم بإرجاع إما "نعم" أو "لا" على سؤال "هل هذا تنتمي هنا؟"

وبعبارة أخرى، والتفكير في مجموعة محددة ك {س | س ∈ X و <م> P (خ) }. مرشح يأخذ مجموعة أساسية، اختبارات لمعرفة ما إذا كان <م> P (خ) غير صحيح، وإرجاع فقط تلك الأعضاء التي كان صحيحا.

وهكذا {<م> س | س هو عدد طبيعي والغريب (<م> س )} هو {1،3،5،7 ...}.

A <م> خريطة ينطبق على وظيفة التعسفية، لذلك يمكن ان يخطر لك أن كمجموعة مثل {ص | س ∈ X و <م> ص = و (خ) }.

وهكذا {<م> ص | س هو عدد طبيعي و <م> ص = x² } غير {1،4،9،16، ...}.

نصائح أخرى

وتصفية يأخذ "القائمة" وظيفة، ينطبق على وظيفة كل عضو من قائمة وإرجاع قائمة جديدة تحتوي على أعضاء فقط حيث تطبيق وظيفة عاد صحيح. على سبيل المثال:

l = [1,2,3,4]
l = filter(lambda x: x < 3, l)
print l # [1,2]

خريطة يفعل نفس الشيء، ولكن بإرجاع قائمة تحتوي على نتائج تطبيق وظيفة:

l = [1,2,3,4]
l = map(lambda x: x < 3, l)
print l # [True,True,False,False]

ومرشح تحديد ما إذا كان يجب أن تبقى عنصر أو إزالتها. A معين فقط يترجم القيمة في إلى آخر. ونتيجة لذلك: إخراج مجموعة من عملية خريطة يساوي دائما في الحجم مع مجموعة الإدخال. الإخراج على عملية تصفية أصغر من مجموعة الإدخال.

وعموما، وظائف خريطة تتخذ مدخلا تحديد وظيفة، وإرجاع مجموعة تحتوي على الانتاج وظيفة لكل عنصر من عناصر المدخلات. يأخذ مرشح مدخلا تحديد وظيفة منطقية، وإرجاع مجموعة تحتوي على قيم المدخلات التي ترجع الدالة الحقيقية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top