2011-06-16 7 views
25

Bottom in Haskell में नीचे की अवधारणा को यहां वर्णित किसी भी गणना के रूप में वर्णित किया गया है, जिसमें त्रुटियां हैं, अनियमित है, या अनंत लूप शामिल है, किसी भी प्रकार का है ... क्या यह हास्केल के लिए विशिष्ट है? हम लैटिस सिद्धांत में जानते हैं, वहां की एक धारणा भी है ..... और नीचे परिभाषित आदेश के आधार पर नीचे परिभाषित नहीं किया जाना चाहिए?हास्केल

+2

मुझे आश्चर्य है अगर यह आपके प्रश्न का से संबंधित हो सकता है: http://blog.ezyang.com/2010/12/hussling-haskell-types-into-hasse-diagrams/ –

+0

भी देखें http://stackoverflow.com/questions/3962939/whats-the-difference-between-undefined-in-haskell-and-null-in-java –

+0

अच्छा! मैं जावा में 'शून्य' और 'ऑब्जेक्ट' भी सोच रहा हूं! –

उत्तर

35

वास्तव में परिभाषा का आदेश है, जहां नीचे कम से कम परिभाषित मान है। अधिक विस्तृत स्पष्टीकरण के लिए this page about denotational semantics in Haskell पर एक नज़र डालें।

विकी पेज से Maybe Bool के मूल्यों के लिए यहां जाली है। यह दिखाता है कि Just TrueJust ⊥ से अधिक परिभाषित है जो से अधिक परिभाषित है।

enter image description here

+4

ग्राफ़िक का उपयोग करने के लिए बोनस अंक! –

+4

'बस नीचे' वास्तव में समान परिभाषा 'कुछ भी नहीं' है? वे दोनों में "परिभाषा" की एक परत होती है, लेकिन 'कुछ भी नहीं' एक ठोस खत्म होता है, जबकि 'बस नीचे' नहीं होता है। –

+16

@Dan वे तुलनीय नहीं हैं क्योंकि वे एक ही श्रृंखला में नहीं हैं। आप बस इतना कह सकते हैं कि वे दोनों नीचे से हैं। – augustss