2014-10-17 6 views
10

क्या कोई मुझे "Comprehending Monads" नामक वाडलर के पेपर से निम्नलिखित परिभाषा को समझने में मदद कर सकता है? (अंश खंड 3.2/पेज 9, यानी, "सख़्ती इकाई" उप-अनुभाग से है।)पी। वाडलर के पेपर से "द स्ट्रिक्नेस मोनाड" में "⊥" का क्या अर्थ है?


कभी कभी यह एक आलसी कार्यात्मक कार्यक्रम में मूल्यांकन के क्रम को नियंत्रित करने के लिए आवश्यक है। यह आमतौर पर = चएक्स गणनीय समारोह सख्त के साथ प्राप्त किया,

सख्तद्वारा परिभाषित किया गया है, तो एक्स ≠ ⊥ तो एक्स बाकी ⊥।

परिचालन सख्तएक्स पहले (WHNF) कमजोर सिर सामान्य रूप को एक्स को कम करने और फिर अनुप्रयोग को कम करने चएक्स से कम है। वैकल्पिक रूप से, यह एक्स और कम करने के लिए चएक्स समानांतर में है, लेकिन जब तक एक्स WHNF में है परिणाम के लिए उपयोग की अनुमति नहीं सुरक्षित है।


पत्र में, हम अभी तक दो सीधा लाइनों (यकीन नहीं कि यह क्या कहा जाता है) से बना प्रतीक के उपयोग को देखने के लिए तो यह एक तरह से कहीं से बाहर आता है।

यह देखते हुए कि वाडलर कहता है कि "हम आलसी कार्यक्रमों के मूल्यांकन को नियंत्रित करने के लिए [सख्त] समझ का उपयोग करेंगे", यह समझने के लिए एक बहुत ही महत्वपूर्ण अवधारणा की तरह लगता है।

+7

इसे सामान्यतः नीचे कहा जाता है। – Squidly

+2

मोनाड्स के साथ आपके प्रश्न को क्या करना है? – leftaroundabout

+3

इसे नीचे कहा जाता है, या हास्केल में विशेष रूप से 'अपरिभाषित' कहा जाता है। यह केवल एक ही रूप है हालांकि तकनीकी रूप से नीचे भी एक गैर-समाप्ति गणना है, जैसे कि लंबाई [1 ..] ' – bheklilr

उत्तर

10

आपके द्वारा वर्णित प्रतीक "नीचे" है। यह आदेश सिद्धांत (विशेष रूप से जाली सिद्धांत) से आता है। आंशिक रूप से आदेशित सेट का "नीचे" तत्व, यदि कोई मौजूद है, तो वह सब है जो अन्य सभी से पहले होता है। प्रोग्रामिंग भाषा अर्थशास्त्र में, यह किसी ऐसे मान को संदर्भित करता है जो किसी अन्य की तुलना में "कम परिभाषित" होता है। प्रत्येक गणना के लिए "नीचे" मान असाइन करना आम है जो या तो त्रुटि उत्पन्न करता है या समाप्त होने में विफल रहता है, क्योंकि इन स्थितियों में अंतर करने की कोशिश करना गणित को कमजोर करता है और प्रोग्राम विश्लेषण को जटिल बनाता है।

चीजों को किसी अन्य उत्तर में जोड़ने के लिए, तार्किक "झूठा" मान सत्य मूल्यों की जाली का निचला तत्व है, और "सत्य" शीर्ष तत्व है। शास्त्रीय तर्क में, ये केवल दो ही हैं, लेकिन कोई भी अंतर्ज्ञानवाद और रचनात्मकता के विभिन्न रूपों जैसे अनन्त रूप से कई सच्चाई मूल्यों के साथ तर्कों पर विचार कर सकता है। ये विचारों को एक अलग दिशा में लेते हैं।

7

मानक बूलियन तर्क में, प्रतीक , पढ़ falsum या नीचे, बस एक बयान है जिसमें हमेशा गलत है, प्रोग्रामिंग भाषाओं में false निरंतर के बराबर। प्रपत्र प्रतीक (Verum या शीर्ष) है, जो true के बराबर है की एक औंधा (उलटा) संस्करण है - और वहाँ तथ्य यह है कि प्रतीक बड़े अक्षर टी की तरह दिखता है (में स्मरक मूल्य है नाम verum और फाल्सम "सत्य" और "झूठी" के लिए लैटिन हैं; नाम "शीर्ष" और "नीचे" नामित सेट के सिद्धांत में प्रतीकों के उपयोग से आते हैं, जहां उन्हें चुना गया था क्षैतिज क्रॉसबार का स्थान।)

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

+5

इसके अलावा एक आलसी कार्यात्मक भाषा में, 'x x' को परिभाषित किया जा सकता है भले ही 'x' अपरिभाषित हो! जैसे अगर 'एफ = कॉन्स 1'। वाडलर केवल यह नहीं देख रहा है कि एक इनपुट का परिणाम अनिर्धारित है यदि यह इनपुट अनिर्धारित है (क्योंकि यह हमेशा सत्य नहीं है), वह * फंक्शन 'सख्त' परिभाषित कर रहा है जो इस संपत्ति को रखने के लिए किसी भी फ़ंक्शन को परिवर्तित करता है। – Ben

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