पर निर्भर प्रकार Haskell और Scala में निर्भर प्रकारों के बारे में बहुत सारी जानकारी है। ओकैमल के लिए, इतना नहीं। क्या कोई ओकैम में इसे प्राप्त करने के तरीके पर कोडिंग उदाहरण प्रदान करने के लिए पर्याप्त कुशल है (यदि यह संभव है तो)? निश्चित रूप से (छोड़ दिया गया) Dependent ML है, लेकिन ऐसा लगता है कि "नियमित" ओकैमल कोड में ऐसी सामग्री शामिल करना संभव नहीं है।OCaml
असल में, मैं क्या करना चाहता हूं assert(n > 0)
जैसे कोड को निकालना और संकलन समय पर जांचें।
संपादित
एक तरफ ध्यान दें के रूप में, यह उल्लेख के OCaml Hybrid Contract Checking शाखा के लायक है, कि एक आश्रित प्रकार प्रणाली की जरूरतों में से कुछ को भरने कर सकते हैं। assert(n > 0)
के बजाय आप तो एक अनुबंध लिखते थे:
contract f = {x : x > 0} -> int
let f x = x + 1
let dummy_variable = f (-1) (* Won't compile *)
क्या मैं पूछ सकता हूं कि यह "हास्केल और स्कैला में निर्भर प्रकारों के बारे में बहुत सारी जानकारी" कहां है? हास्केल समुदाय का उचित अवलोकन होने के बावजूद, मुझे नहीं पता कि आप किस चीज का जिक्र कर रहे हैं। (मैं निश्चित रूप से यूपीएएन काम पर निर्भर करता हूं [निर्भर रूप से टाइप किए गए हास्केल] (http://www.cis.upenn.edu/~sweirich/) प्रासंगिक के रूप में, लेकिन यह व्यावहारिक के बजाय बेहद शोधपूर्ण है, और शायद "बहुत" मात्रा में)। मुझे नहीं पता कि आप स्कैला के बारे में क्या सोच रहे हैं - शायद पथ-निर्भर प्रकारों के संबंध में? – gasche
एहम, स्टैक ओवरफ्लो पर, मैं सोच रहा था। शायद मैं Scalas पथ-निर्भर प्रकार से मूर्ख था। –