lisp - Practical use of fold/reduce in functional languages -


मोड़ो (उर्फ कम करें ) एक बहुत ही महत्वपूर्ण उच्च आदेश माना जाता है समारोह। मानचित्र को गुना () के रूप में व्यक्त किया जा सकता है लेकिन मेरे लिए व्यावहारिक से अधिक अकादमिक लगता है एक विशिष्ट उपयोग राशि, या उत्पाद या अधिकतम संख्या प्राप्त करने के लिए हो सकता है, लेकिन ये फ़ंक्शंस आम तौर पर किसी भी संख्या में तर्कों को स्वीकार करते हैं। तो क्यों (गुना + 0 '(2 3 5)) लिखना जब (+ 2 3 5) ठीक काम करता है मेरा प्रश्न यह है कि किस स्थिति में यह गुना

गुना का अंक यह है कि यह अधिक सार है ऐसा नहीं है कि आप उन चीजों को कर सकते हैं जो आप पहले नहीं कर सके, यह है कि आप उन्हें और अधिक आसानी से कर सकते हैं।

एक गुना का उपयोग करके, आप किसी भी फ़ंक्शन, जिसे दो तत्वों पर परिभाषित किया जाता है, जो तत्वों की मनमाना संख्या पर लागू होता है। यह एक जीत है क्योंकि यह आमतौर पर एक लिखने, परीक्षण, रखरखाव और संशोधित करने के लिए आसान होता है जो एक सूची से दो तर्क लागू करता है।

चूंकि गुना (और उस मामले के लिए) , नक्शा , फ़िल्टर , और मित्र) अच्छी तरह से परिभाषित व्यवहार है, यह अक्सर स्पष्ट पुनरावर्ती की तुलना में इन कार्यों का उपयोग करके कोड को समझने में बहुत आसान है।

असल में, एक बार आपके पास एक संस्करण होता है, आप अन्य "मुफ्त में" प्राप्त करते हैं। अंत में, आप एक ही परिणाम प्राप्त करने के लिए कम काम कर रहे हैं।

Comments