2013-05-04 8 views
10

युक्त स्ट्रिंग का प्रकार टाइप करें मुझे स्ट्रिंग के रूप में दिए गए हास्केल अभिव्यक्ति के प्रकार का कुछ प्रतिनिधित्व प्राप्त करने के लिए एक (त्वरित और गंदा) तरीका चाहिए।हास्केल अभिव्यक्ति

मैं वर्तमान में 3 विकल्प देखें:

  • उपयोग GHC एपीआई - हालांकि, प्रलेखन मुझे बहुत जल्दी खो देता है।
  • कुछ अन्य प्रकार के अनुमान उपकरण का उपयोग करें - मुझे सुझाव दिया गया है कि हैकेल-टाइप-एक्सट्स का प्रयास करें, लेकिन यह सभी सबसे छोटी अभिव्यक्तियों को टाइप करने में विफल रहता है। मुझे ऐसा कोई अन्य उपकरण नहीं पता है।
  • रोल मेरे अपने एचएम inferer - मैं जब तक इससे बचने था बिल्कुल जरूरी

मैं भी अर्थ में, एक पूर्ण समाधान की जरूरत नहीं है कि एक पुस्तकालय/उपकरण है जो की उचित बुनियादी सबसेट टाइप कर सकते हैं हास्केल मेरे लिए पर्याप्त होगा।

तो इसे प्राप्त करने का सबसे आसान तरीका क्या है?

+0

[अन्य हास्केल कार्यान्वयन] (पर एक नज़र डालें http://www.haskell.org/haskellwiki/Implementations) - उनमें से कुछ जीएचसी की तुलना में उपयोग करने में आसान हो सकते हैं। –

+2

यदि आप अपना खुद का लिखते हैं, तो मार्क पी जोन्स '[THIH] (http://web.cecs.pdx.edu/~mpj/thih/) एक अच्छी शुरुआत हो सकती है। –

उत्तर

17

hint package कुछ हद तक प्रतिबंधित, लेकिन शायद जीएचसी एपीआई के लिए अधिक समझने योग्य इंटरफ़ेस प्रदान करता है। शायद यह आपके उद्देश्यों के लिए पर्याप्त है? यदि नहीं, तो आप शायद जीएचसी एपीआई का उपयोग कैसे करें इसका बेहतर विचार पाने के लिए स्रोतों को देख सकते हैं।

यहाँ एक उदाहरण कार्यक्रम है:

import Language.Haskell.Interpreter 

main :: IO() 
main = do 
    r <- runInterpreter $ do 
    setImports ["Prelude"] 
    typeOf "map (+1)" 
    either print putStrLn r 

हैं चलाने के लिए, यह प्रिंट

Num b => [b] -> [b] 
+0

यह भयानक सामान है, धन्यवाद! – xcvii

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