2009-07-27 11 views
12

सबसे पहले, नासमझ शीर्षक सीधे इस पत्र संदर्भित कर रहा है:"केला, लेंस, लिफाफे, और बरबेदार तार" का व्यावहारिक अनुप्रयोग?

http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf

मैं, इस के सैद्धांतिक मूल्य को समझते रूप में यह मॉडल सबसे, यदि सभी नहीं, अर्थ विज्ञान प्रोग्रामिंग।

इस पर आधारित प्रोग्रामिंग प्रतिमान के साथ सबसे अधिक कुशलतापूर्वक और व्यावहारिक रूप से हल की जाने वाली समस्याएं क्या हैं? क्या समस्याएं नहीं हैं?

कल्पना की गई सभी कार्यक्रमों की कल्पना करें जहां सभी तर्कों में से 80% इन ऑपरेटरों को शामिल करते हैं। मुझे आश्चर्य है कि उपयोगकर्ता द्वारा ऑपरेटरों को मजबूर करने वाली भाषा उनकी संरचना का लाभ उठा सकती है ...

+2

पता नहीं _what_ मुझे पोस्टस्क्रिप्ट फ़ाइल के साथ क्या करना है। यहाँ पोस्ट बैठे एक पोस्टस्क्रिप्ट प्रिंटर नहीं है। –

+2

क्या आप इस पेपर के पीडीएफ या एचटीएमएल संस्करण की आपूर्ति कर सकते हैं क्योंकि कई कंप्यूटरों पर पोस्टस्क्रिप्ट पढ़ने में आसान नहीं है। –

+3

आपका पीडीएफ रीडर पोस्टस्क्रिप्ट नहीं पढ़ सकता है? 1 9 50 के बाद कुछ समय से कंप्यूटर पर अपग्रेड करने का समय, मेथिंक। – jrockway

उत्तर

15

यह पेपर संबंधित सैद्धांतिक अन्वेषण की एक लंबी श्रृंखला में से एक है। अनुसंधान क्षेत्र वह है जो कार्यात्मक प्रोग्रामर जेनेरिक प्रोग्रामिंग (जो भ्रमित रूप से सी ++ प्रोग्रामर जेनेरिक प्रोग्रामिंग को कॉल करते हैं) से अलग है। विचार यह है कि आप अपने कार्यों को इस प्रकार लिखते हैं कि जब आप एक नया डेटा प्रकार परिभाषित करते हैं, तो आप के साथ जाने के लिए स्वचालित रूप से नया कोड प्राप्त करते हैं। एक क्लासिक समस्या लोग इस तरह हल करना चाहते हैं कि डिस्क की डेटा को डिस्क पर लिखना और बाद में डिस्क छवि से आइसोमोर्फिक डेटा वापस पढ़ना है।

यदि आप इन विचारों के व्यावहारिक अनुप्रयोगों के लिए महसूस करना चाहते हैं, तो मैं राल्फ हिनज के उत्कृष्ट पेपर Generics for the Masses की अनुशंसा करता हूं, जो दिखाता है कि आप सादे पुराने Haskell में इन सभी निराला विचारों को कैसे आजमा सकते हैं। उदाहरण के लिए, मैंने कंप्यूटर्स के अंदर बहुत ही जटिल मध्यवर्ती भाषाओं के लिए कैप्चर-सेविंग प्रतिस्थापन को लागू करने के लिए इन तकनीकों का उपयोग किया है।

राल्फ ने सामान्य प्रोग्रामिंग पर जेरेमी गिब्बन के रूप में कई अच्छे कागजात लिखे हैं। उनकी सामग्री काफी दूर तक नहीं है, केले, लेंस, और इतने पर ...

+0

बढ़िया! पेपर लिंक के लिए धन्यवाद। यद्यपि, जेनेरिक 'केले' को नहीं मिला था। हो सकता है कि मुझे दोबारा दोबारा दोबारा दोबारा दोबारा दोबारा दोबारा दोबारा करना पड़ेगा। (हालांकि, शायद श्रेणी सिद्धांत भाग में दफनाया गया है कि मुझे अच्छी तरह से समझ नहीं आती है।) –

+1

श्रेणी सिद्धांत मेरे सिर को चोट पहुंचाता है ... –

+0

ऐसा लगता है कि आपके पास जेनिक्स के लिए जेनेरिक के लिए लिंक मृत है। यहां एक और है: http://www.cs.ox.ac.uk/ralf.hinze/publications/Masses.pdf –

2

इसका क्या अर्थ है कि एक प्रतिमान में मॉडलिंग किए जा सकने वाले समाधानों को भी दूसरे में मॉडलिंग किया जा सकता है, और कोई भी प्रोग्रामेटिक रूप से दूसरे में परिवर्तित हो।

अब, कुछ समस्याओं को एक दूसरे के मुकाबले एक प्रतिमान में आसानी से हल किया जाता है। साथ ही, दूसरे की तुलना में एक प्रतिमान में संपत्तियों को साबित करना आसान है। तो यदि आप इस तरह के समानता दिखा सकते हैं, तो आप आसानी से कुछ समस्याओं को हल करने के लिए दरवाजा खोलते हैं, और फिर समाधान को वांछित प्रतिमान में परिवर्तित करते हैं।

यह monads चीज़ के समान है। मोनैड के साथ बड़ा सौदा यह नहीं है कि आप एक कैसे लिखते हैं। उनके साथ बड़ा सौदा यह है कि मोनैड के बारे में बहुत से प्रमेय हैं जिन्हें एक बार मोनाड में आपकी समस्या कम करने के बाद लागू किया जा सकता है। वही सिद्धांत यहां लागू होता है।

+0

दाएं। यह सभी प्रतिमानों पर लागू होता है। (मेरा मतलब है, अगर मैं ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के बारे में पूछ रहा था, तो यह सच होगा)। लेकिन मैं इससे * क्या प्राप्त कर सकता हूं? –

+1

एक प्रोग्रामर के रूप में या एक शोधकर्ता के रूप में? एक प्रोग्रामर के रूप में, कुछ भी नहीं, वास्तव में। एक शोधकर्ता के रूप में ... अच्छा, मैं इसका जवाब देने के लिए योग्य नहीं हूं। :-) –

संबंधित मुद्दे