2017-10-03 2 views
1

実行時にハングするoptparse-applicativeを使って、以下のHaskellコードを用意しました。Haskellのoptparse-applicativeで複数の値を持つオプションを使う方法

main :: IO() 
main = do 
    printf "Start...\n" 
    args <- execParser $ info args fullDesc 
    printf "Cmdline args: %s\n" (show args) 

args :: Parser [Integer] 
args = many (option auto 
     (short 'x' 
      <> value 1)) 

問題は、私はそれを削除したら、コードは正常に実行されるため多くコンビネータの使用に関連しています。

これはバグですか、何か間違っていますか?

ありがとうございます!

答えて

5

私は、ここでの問題はデフォルト値であると思います。パーサー修飾子からvalue 1を削除するだけです。ドキュメントから

value上:

注:この修飾子が失敗することはありませんパーサを意味しているため、これらのコンビネータは、障害が発生するまで継続するとして、そのようないくつかのまたは多くのようコンビネータには使用しないでください。不用意に使用するとハングアップすることになります。

関連する問題