में पूर्णांक द्वारा पैरामीटरेटिंग प्रकार मैं कुछ हास्केल प्रकार बनाने की कोशिश कर रहा हूं जो पैरामीटर द्वारा प्रकार के नहीं हैं बल्कि एक प्रकार के तत्वों, विशेष रूप से, पूर्णांक हैं। उदाहरण के लिए, आर^2 में एक (रैखिक-बीजगणित) वेक्टर और आर^3 में एक वेक्टर अलग टाइप की गई वस्तुएं हैं। विशेष रूप से, मैं हास्केल में एक के-डी पेड़ लिख रहा हूं और मैं अपने डेटा-स्ट्रक्चर को सकारात्मक पूर्णांक द्वारा पैरामीट्रिज करना चाहता हूं ताकि 3-डी पेड़ और 4-डी पेड़ के अलग-अलग प्रकार हों।हास्केल
मैंने अपने पेड़ को टपल्स द्वारा पैरामीट्रिज करने की कोशिश की है, लेकिन ऐसा लगता है कि यह कहीं भी नहीं जा रहा है (और ऐसा लगता है कि इसे कुछ हद तक असंभव रूप से देखा जा सकता है, विशेष रूप से ऐसा लगता है कि ट्रिपल या कुछ भी बड़ा नहीं है । इस तरह
data (TupleOfDoubles a) => KDTree a b = ... ---so in a 3DTree a is (Double,Double,Double)
कि अच्छा होगा, या कुछ और होगा: भी functors मैं इस तरह कुछ करना चाहता हूँ (और मैं उदाहरण HomogeneousTuple एक => functor एक तरह कहने के लिए, किसी भी तरह से पता नहीं है) समान रूप से अच्छा
data KDTree Int a = ... -- The Int is k, so KDTree has kind Int -> * -> *
क्या इनमें से कोई भी जानता है या नहीं प्रभाव व्यावहारिक या उचित हैं?
धन्यवाद -Joseph
एक साइड-नोट, आप निर्भर प्रकारों पर कुछ साहित्य में रूचि रख सकते हैं, जो मूल्यों से लेकर प्रकारों के कार्यों का एक सामान्य प्रकार है: मैंने http://www.cse.chalmers.se/~peterd का आनंद लिया /papers/DependentTypesAtWork.pdf –
धन्यवाद आमोस, ऐसा लगता है कि मैं –