मैं एक लाइब्रेरी की तलाश में हूं जो कमांड लाइन तर्क पार्सिंग और सहायता पीढ़ी के झगड़े पर सार के लिए एक मोनैड का उपयोग करता है। मैं निम्न बातों का ध्यान काफी स्पष्ट उपयोग पैटर्न:मोनैड लाइब्रेरी पढ़ने के लिए कमांड लाइन तर्क
main = do
portOrSocket <- Args.run $ do
mbSocket <- Args.read $ Args.Arg "s" "socket" "Description"
mbPort <- Args.read $ Args.Arg "p" "port" "Description"
case mbSocket of
Just socket -> return $ Right socket
Nothing -> case mbPort of
Just port -> return $ Left port
Nothing -> return $ Left defaultPort
...
ऊपर कोड सभी जानकारी पार्स, सत्यापन और उपयोग पीढ़ी संभालने के लिए आवश्यक है और IMO समझने के लिए काफी आसान है। दुर्भाग्य से हैकेज के माध्यम से देखने और cmdargs, cmdlib, parseargs, ReadArgs जैसे पैकेजों की जांच करने के बाद मुझे इसके करीब कहीं भी कुछ नहीं मिला है। लेकिन कार्यान्वयन में डाइविंग से पहले मैं यह सुनिश्चित करना चाहता हूं कि मुझे कुछ भी याद नहीं आया है। तो क्या ऐसी कोई पुस्तकालय है जो समस्या के समान दृष्टिकोण का शोषण करती है?
आप की कोशिश की है 'optparse-applicative'? 'Optparse-applicative' के लिए –
+1। यह बहुत अच्छा है। – jtobin
ऐसा लगता है कि पैरामीटर स्वचालित सहायता संदेशों को उत्पन्न करना लगभग असंभव होगा, यदि पैरामीटर अन्य पैरामीटर के मानों पर निर्भर करता है। शायद यही कारण है कि _optparse-applicative_ लागूकर्ता का उपयोग करता है। –