टाइप रैकेट किस तरह का प्रकार अनुमान लगाता है? मैं रैकेट मेलिंग सूची पर निम्नलिखित स्निपेट नहीं मिली:टाइप किए गए रैकेट के प्रकार अनुमान कैसे काम करता है?
The Typed Racket type system contains a number of features that go beyond what's supported in Hindley/Milner style type systems, and so we can't use that inference system. Currently, Typed Racket uses local type inference to infer many of the types in your program, but we'd like to infer more of them -- this is an ongoing area of research.
blurb ऊपर शब्द "स्थानीय प्रकार निष्कर्ष" का उपयोग करता है, और मैं यह भी सुना है "घटना टाइपिंग" एक बहुत इस्तेमाल किया है, लेकिन मैं वास्तव में नहीं हूँ सुनिश्चित करें कि इन शर्तों का क्या अर्थ है।
ऐसा लगता है कि टाइप किए गए रैकेट वर्तमान में उपयोग किए जाने वाले टाइप अनुमान प्रणाली को अनावश्यक रूप से कमजोर है। मेरा मतलब क्या है इसका एक उदाहरण यहां दिया गया है। निम्न लिखें नहीं करता है की जाँच करें:
(struct: pt ([x : Real] [y : Real]))
(define (midpoint p1 p2)
(pt (/ (+ (pt-x p1) (pt-x p2)) 2)
(/ (+ (pt-y p1) (pt-y p2)) 2)))
आप स्पष्ट रूप से (: midpoint (pt pt -> pt))
साथ midpoint
व्याख्या करने के लिए है, अन्यथा आप त्रुटि मिलती है: Type Checker: Expected pt, but got Any in: p1
। टाइप चेकर इस प्रकार से निष्कर्ष निकाला नहीं जा सकता है कि p1
और p2
pt
होना चाहिए? क्या यह रैकेट प्रकारों को लागू करने के तरीके की एक मौलिक सीमा है (यानी रैकेट की अधिक उन्नत प्रकार की विशेषताओं के कारण, वास्तव में गलत तर्क की यह पंक्ति है), या यह कुछ ऐसा है जो संभवतः भविष्य में लागू किया जा सकता है?
सैम टोबिन-Höchstadt की पीएचडी शोध प्रबंध रक्तमय विवरण होना चाहिए: http://www.ccs.neu.edu/racket/pubs/dissertation-tobin-hochstadt.pdf – dyoo