如何在optparse-applicative中获得"剩余参数"?

d8d*_*f42 5 haskell command-line-arguments applicative

我正在尝试使用optparse-applicative.如何访问不是选项的参数?(从prog --foo --bar=42 baz,我想得到["baz"])

所有"高级"函数https://hackage.haskell.org/package/optparse-applicative-0.11.0.2/docs/Options-Applicative-Extra.html 返回a我想要的地方(a,[String]).

有一些低级函数https://hackage.haskell.org/package/optparse-applicative-0.11.0.2/docs/Options-Applicative-Common.html#v:runParser但我不能直接调用它因为它的类型.事实上,我确实希望重新使用https://hackage.haskell.org/package/optparse-applicative-0.11.0.2/docs/src/Options-Applicative-Extra.html#execParser中的所有管道.

kos*_*kus 5

位置参数是解析器规范的一部分。它们不会由运行解析器的函数单独返回。函数argumentstrArgument可用于为规范添加位置参数的解析器。

  • 如果您需要将不同数量的参数组合在一起(如许多 UNIX 命令在末尾获取文件名列表)怎么办? (2认同)
  • 解析器是“Applicative”的一个实例,因此您可以使用“many”或“some”等函数来允许可变数量的参数。 (2认同)