पिप्पेनगर के अनुसार [१ ९९ ६] , जब एक लिस्प प्रणाली की तुलना की जाती है जो विशुद्ध रूप से कार्यात्मक होती है (और इसका सख्त मूल्यांकन शब्दार्थ है, आलसी नहीं है) जो कि डेटा को म्यूट कर सकती है, अशुद्ध लिस्प के लिए लिखे गए एल्गोरिथ्म जो O ( n ) में चलता है, का अनुवाद किया जा सकता है। शुद्ध लिस्प में एक एल्गोरिथ्म जो ओ ( एन लॉग एन ) समय में चलता है ( केवल बिंदुओं का उपयोग करके यादृच्छिक अभिगम स्मृति के अनुकरण के बारे में बेन-अम्राम और गैलिल [1992] के आधार पर )। पिप्पेंगर यह भी स्थापित करता है कि एल्गोरिदम हैं जिनके लिए आप सबसे अच्छा कर सकते हैं; शुद्ध प्रणाली में there ( n log n ) जो अशुद्ध प्रणाली में O ( n ) हैं समस्याएं हैं ।
इस पेपर के बारे में कुछ बातें बताई जानी हैं। सबसे महत्वपूर्ण यह है कि यह आलसी कार्यात्मक भाषाओं जैसे हास्केल को संबोधित नहीं करता है। बर्ड, जोन्स और डी मूर [१ ९९ demonstrate ] प्रदर्शित करते हैं कि पिप्पेंजर द्वारा निर्मित समस्या को ओ ( एन ) समय में एक आलसी कार्यात्मक भाषा में हल किया जा सकता है , लेकिन वे स्थापित नहीं करते हैं (और जहां तक मुझे पता है, किसी के पास नहीं है) या एक आलसी कार्यात्मक भाषा एक ही विषम समय में सभी समस्याओं को एक भाषा के रूप में म्यूटेशन के साथ हल नहीं कर सकती है।
Pippenger द्वारा निर्मित समस्या के लिए Ω ( n log n ) की आवश्यकता होती है, विशेष रूप से इस परिणाम को प्राप्त करने के लिए निर्मित किया जाता है, और यह जरूरी नहीं कि व्यावहारिक, वास्तविक दुनिया की समस्याओं का प्रतिनिधि हो। समस्या पर कुछ प्रतिबंध हैं जो कुछ अप्रत्याशित हैं, लेकिन काम करने के लिए सबूत के लिए आवश्यक हैं; विशेष रूप से, समस्या की आवश्यकता है कि परिणाम भविष्य के इनपुट तक पहुंचने में सक्षम होने के बिना, ऑन-लाइन गणना किए जाते हैं, और यह कि इनपुट में एक निश्चित आकार के सेट के बजाय संभावित परमाणुओं के अनबाउंड सेट से परमाणुओं का एक क्रम होता है। और कागज केवल रैखिक चल समय के एक अशुद्ध एल्गोरिथ्म के लिए (कम बाध्य) परिणाम स्थापित करता है; उन समस्याओं के लिए जिन्हें अधिक चलने वाले समय की आवश्यकता होती है, यह संभव है कि अतिरिक्त ओ (लॉग एन) रैखिक समस्या में देखा जाने वाला कारक अधिक चालू समय के साथ एल्गोरिदम के लिए आवश्यक अतिरिक्त संचालन की प्रक्रिया में "अवशोषित" हो सकता है। इन स्पष्टीकरणों और खुले प्रश्नों को बेन-अराम [1996] द्वारा संक्षिप्त रूप से खोजा गया है ।
व्यवहार में, कई एल्गोरिदम को एक ही दक्षता पर शुद्ध कार्यात्मक भाषा में लागू किया जा सकता है जैसा कि उत्परिवर्तनीय डेटा संरचनाओं वाली भाषा में होता है। विशुद्ध रूप से कार्यात्मक डेटा संरचनाओं को कुशलतापूर्वक लागू करने के लिए उपयोग की जाने वाली तकनीकों के अच्छे संदर्भ के लिए, क्रिस ओकासाकी की "विशुद्ध रूप से कार्यात्मक डेटा संरचनाएं" [ओकासाकी 1998] (जो उनकी थीसिस [ओकासाकी 1996] का विस्तारित संस्करण है ) देखें।
जिस किसी को भी शुद्ध रूप से कार्यात्मक डेटा संरचनाओं पर एल्गोरिदम को लागू करने की आवश्यकता है, उसे ओकासाकी को पढ़ना चाहिए। आप हमेशा संतुलित बाइनरी ट्री के साथ उत्परिवर्ती मेमोरी का अनुकरण करके प्रति ऑपरेशन ओ (लॉग एन ) मंदी की स्थिति में सबसे खराब स्थिति में आ सकते हैं , लेकिन कई मामलों में आप इससे काफी बेहतर कर सकते हैं, और ओकासाकी कई उपयोगी तकनीकों का वर्णन करता है, जिसमें परिशोधन तकनीक से लेकर वास्तविक तक शामिल हैं। समय जो परिश्रम का परिशोधन करते हैं। विशुद्ध रूप से कार्यात्मक डेटा संरचना के साथ काम करना और विश्लेषण करना थोड़ा मुश्किल हो सकता है, लेकिन वे संदर्भात्मक पारदर्शिता जैसे कई लाभ प्रदान करते हैं जो संकलक, वितरित और पूर्ववत करने जैसी सुविधाओं के कार्यान्वयन में, समानांतर और वितरित कंप्यूटिंग में सहायक होते हैं।
यह भी ध्यान दें कि यह सब केवल विषम समय चल रहा है पर चर्चा करता है। विशुद्ध रूप से कार्यात्मक डेटा संरचनाओं को लागू करने के लिए कई तकनीकें आपको निरंतर कारक मंदी की एक निश्चित मात्रा देती हैं, क्योंकि उनके लिए काम करने के लिए आवश्यक अतिरिक्त बहीखाता पद्धति, और प्रश्न में भाषा का विवरण लागू करना। विशुद्ध रूप से कार्यात्मक डेटा संरचनाओं के लाभ इन स्थिर कारक मंदी से आगे निकल सकते हैं, इसलिए आपको आम तौर पर प्रश्न में समस्या के आधार पर व्यापार-नापसंद बनाने की आवश्यकता होगी।
संदर्भ
- बेन-अमराम, अमीर और गैलील, ज़वी 1992। "ऑनर्स वर्सेस एड्रेस" एसीएम के जर्नल, 39 (3), पीपी 617-648, जुलाई 1992।
- बेन-अमराम, आमिर 1996. "नोट्स ऑन पिपेनगर कम्पेरिजन ऑफ़ प्योर एंड इम्प्रूव लिस्प" अप्रकाशित पांडुलिपि, DIKU, कोपेनहेगन विश्वविद्यालय, डेनमार्क
- बर्ड, रिचर्ड, जोन्स, गेरेंट, और डी मूर, ओगे 1997। "अधिक जल्दबाजी, कम गति: आलसी बनाम उत्सुक मूल्यांकन" जर्नल ऑफ़ फंक्शनल प्रोग्रामिंग 7, 5 पीपी 541–547, सितंबर 1997।
- ओकासाकी, क्रिस 1996. "विशुद्ध रूप से कार्यात्मक डेटा संरचनाएं" पीएचडी थीसिस, कार्नेगी मेलन विश्वविद्यालय
- ओकासाकी, क्रिस 1998. "विशुद्ध रूप से कार्यात्मक डेटा संरचनाएं" कैम्ब्रिज यूनिवर्सिटी प्रेस, कैम्ब्रिज, यूके
- पिपेन्गेर, निकोलस 1996. "शुद्ध वर्सेज इम्प्रेस लिस्प" एसीएम संगोष्ठी प्रोग्रामिंग भाषाओं के सिद्धांतों पर, पृष्ठ 104-109, जनवरी 1996