एक कार्यात्मक प्रोग्रामिंग भाषा में, जो पर्याप्त शक्तिशाली है (उदाहरण के लिए, क्लोजर को लागू करने के लिए डेटा प्रकारों के साथ ) आप उच्च क्रम के सभी उपयोगों को विचलन के परिवर्तन से समाप्त कर सकते हैं । चूंकि इस पद्धति का उपयोग इस तरह की भाषा को संकलित करने के लिए किया जाता है, आप यथोचित मान सकते हैं कि यह प्रदर्शन को प्रभावित नहीं करता है और इस सेटिंग में उच्चतर आदेश भाषा को कम शक्तिशाली नहीं बनाते हैं। हालांकि यह प्रभावित करता है कि कोड कैसे लिखें।
हालाँकि यदि भाषा पर्याप्त शक्तिशाली नहीं है, तो हाँ, उच्चतर क्रम अभिव्यंजक शक्ति प्रदान करता है। लैम्ब्डा-कैलकुलस पर विचार करें: किसी भी उच्च-क्रम फ़ंक्शन के बिना, यह वास्तव में कुछ भी नहीं कर सकता है, क्योंकि ज्यादातर बुनियादी डेटा प्रकार (पूर्णांक, बूलियन) कार्यों का उपयोग करके कार्यान्वित किए जाते हैं।
निष्कर्ष में, यह वास्तव में भाषा पर निर्भर करता है।
ऊपर मेरा जवाब है। नीचे, अनिवार्य भाषाओं पर एक सामान्य धारणा के बारे में एक टिप्पणी।
एक एल्गोरिथ्म के बारे में जो एक गैर-आलसी कार्यात्मक प्रोग्रामिंग भाषा पर एक जटिलता है, जबकि अनिवार्य प्रोग्रामिंग में एक ही एल्गोरिथ्म । FP भाषा में आलसीपन जोड़ने से एल्गोरिथम ।Ω(nlogn)Ω(n)Ω(n)
मैं इस संदर्भ को देखना चाहूंगा। सामान्य धारणा यह है कि एक रैम में लंबाई की एक सरणी तक पहुंच और शुद्ध एफपी के बराबर समय । यह पूरी तरह से सच नहीं है: रैम में एक्सेस टाइम जहां मेमोरी का आकार होता है। बेशक, । व्यवहार में एक सरणी के एक तत्व तक पहुँचने के लिए बहुत तेज है। एक कारण यह होगा कि बाउंडेड है ... लेकिन !nO(1)O(logn)O(logm)mm≥nmn
संपादित करें: लिंक के लिए धन्यवाद (आलस्य के बारे में कागज के लिए लिंक उपलब्ध नहीं है, यहां एक और एक है )। जैसा कि टिप्पणियों में पोस्ट किया गया है और मेरे जवाब में ऊपर है, रैम का मॉडल हेफ़ -टाइम लुक-अप प्रदान करके थोड़ा एफपी के लिए थोड़ा अनुचित है , जब एक पते का आकार बाध्य नहीं होता है। मुझे अभी तक समझ नहीं आया है कि आलसी चाल कैसे काम करती है लेकिन मुझे लगता है कि यह ध्यान रखना महत्वपूर्ण है कि यह केवल इस विशेष समस्या के लिए है।O(1)