【发布时间】:2012-07-07 07:27:08
【问题描述】:
我有几个命令行选项(例如 5 个),我想将它们转换为元组。问题是我希望它们以正确的顺序出现,因此可以使用模式匹配从列表轻松构建元组,但在现实生活中可以随机顺序提供选项,所以我不知道列表的头部是否包含详细选项或日志文件名?
我试图思考如何使用 continuation-passing 风格来做到这一点,但是我没有想到任何有用的东西。
这有可能吗?
我认为我可以“排序”列表以使其按预测顺序排列,但看起来不太好。
我也可以摆脱元组并创建数据记录——但这仍然会导致检查属性类型并设置记录的正确字段。仍然需要大量打字。
【问题讨论】:
-
您是否考虑过在 hackage 上使用众多命令行解析包之一?
-
@NathanHowell 我正在使用 GetOpt 和 Permute 排序
-
cmdargs和optparse-applicative等包填写记录字段.. 忽略命令行参数的顺序。您可以尝试其中一种或两种方法来替代 GetOpt。 -
@jdevelop GetOpt 出了什么问题?我之前已经多次使用它,并在这样的用例中取得了巨大的成功。
-
@DanielWagner GetOpt 没有任何问题,它会在命令行中找到选项时返回选项。但我需要将选项列表转换为元组。也许元组不是一个好的选择。
标签: list haskell tuples continuation-passing