2016-04-03 3 views
1

私はを使って、exampleというプログラムのコマンドライン引数を解析しています。私は名前のないフィールドを持つデータ型を持っています。例:Haskell、optparse-genericのラベルのないコマンドライン引数のドキュメント

これは、次のように呼び出すことができるプログラムを生成します。./exmaple "foo"。しかし、ユーザーにとっては、Stringのパラメータが何であるかについてのドキュメントはありません。特に、./example --helpは、String引数./exampleが期待するこの位置に関する貴重な情報を提供していません。

名前付きデータ型(レコード構文)を使用すると、データ型にドキュメントを追加することができます。たとえば、

data Labeled = Labeled {name :: String <?> "Select the foo"} deriving (Generic, Show) 

これは、プログラムのヘルプテキストを生成します。たとえば、./example --helpと呼ばれると、--name STRING Select the fooと表示されます。

record-syntax-datatypeの場合と同じ方法で、名前のないデータ型にドキュメントを追加するにはどうすればよいですか?

+1

'data Labeled = Labeled(文字列「fooを選択」)' --help'メッセージで 'STRINGを選択します。 – user2407038

+0

ああ、括弧。どのように私の愚かな。 @ user2407038、これを通常の回答として投稿してください。解決済みの質問にマークを付けることができます。 – corny

答えて

1

データLabeled = Labeled (String <?> "Select the foo")あなた--helpメッセージで

... 
STRING  Select the foo 
... 

を与えるだろう。おそらく明確にするために、<?>は単なる型コンストラクタであり、構文的には単なる演算子です。たぶん楽しい事実:あなたはdata X = X (Int `Either` Bool)と書くこともできます。

関連する問題