【问题标题】:How to use options with multiple values with Haskell's optparse-applicative如何通过 Haskell 的 optparse-applicative 使用具有多个值的选项
【发布时间】:2017-10-04 02:10:09
【问题描述】:

我有以下使用 optparse-applicative 的 Haskell 代码,它在运行时挂起。

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))

问题与 many 组合器的使用有关,因为一旦我删除它,代码就可以正常运行。

这是一个错误还是我做错了什么?

谢谢!

【问题讨论】:

    标签: haskell optparse-applicative


    【解决方案1】:

    我认为,这里的问题在于默认值。只需从解析器修饰符中删除 value 1

    来自value 上的文档:

    注意:因为这个修饰符意味着解析器永远不会失败,所以不要将它与 some 或 many 之类的组合器一起使用,因为这些组合器会一直持续到发生故障为止。不小心使用会导致挂起。

    【讨论】:

      猜你喜欢
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多