Haskell 命令行参数处理库

标签 haskell command-line-arguments

我一直在使用cmdargs用于参数处理一段时间,这很棒。但是,我没有看到带有单个连字符的长选项名称的工具,例如-option1 -option2或更难的-optx相当于--opt=x .我需要保持与现有应用程序的兼容性,因此这些格式都是必需的。

System.Console.Getopt 似乎也不适合它。任何人都可以提供如何使用 cmdargs 执行此操作的示例,或者建议一个支持此功能的替代库吗?

最佳答案

可能你能做的最简单的事情就是自己做一个快速的预处理过程。例如,如果您需要完全支持 -option1 三个选项, -option2 , 和 -optx ,这样的事情应该可以工作:

munge "-option1" = "--option1"
munge "-option2" = "--option2"
munge s | "-opt" `isPrefixOf` s = "--opt=" ++ drop 4 s
munge s = s

main = do
    realArgs <- getArgs
    withArgs (map munge realArgs) mainThatUsesCmdArgs

但是,正如您所说,帮助消息将不再提及使用这些简短表格的可能性。 (不过,这也许是件好事。)

如果你想要更多,你可能不得不说服某人修改 cmdargs。

关于Haskell 命令行参数处理库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5679364/

相关文章:

c - 使用函数定义命令行参数

haskell - 如何最好地提供字节串上的通用接口(interface)?

使用推断类型的 Haskell 类型错误

haskell - 我可以得到 `cabal install` 来使用多核吗?

java - 命令行参数

java - 从 java 命令行发送参数

unix - 在命令行中查找和替换多个文件

c++ - 在 C++ 中解析命令行参数?

haskell - 我可以 “factorize” 类型签名吗?

代表有效类型的 Haskell 数据类型