1

给定 aParser a和 type 的值a是否可以生成相关的命令行(以文本格式)?(基本上,与optparse-applicative通常使用的完全相反!)

例如,给定类似...

data Args = {userName :: Text, userGroups :: Text }

parser :: Parser Args
parser = Args
  <$> (strOption $ long "name")
  <*> (many $ strOption $ long "group")

...如何转换以下内容...

let args = Args { userName :: "testUser", userGroups :: ["system", "sudo"] }

...至...

--name=testUser --group=system --group=sudo
4

1 回答 1

1

不,一般没有办法。相关位是:

data Parser a
  = forall x . MultP (Parser (x -> a)) (Parser x)
  | forall x . BindP (Parser x) (x -> Parser a)
  | -- ...

由于 和 的sx是存在量化的,因此有关可用于生成您的合适 s的信息在运行时会丢失。MultPBindPxa

于 2018-12-31T16:28:53.430 回答