現在、私は大学の宿題に取り組んでおり、タスクの 1 つは、ダミー プログラミング言語 ("Hi" という名前) の Haskell パーサーに文字列リテラルのサポートを追加することです。
私はそのコードでこのタスクを解決しました:
parseString = do
res <- char '\"' *> manyTill charLiteral (char '\"')
return (HiValueString (pack res))
between
しかし、 ?を使用してこのタスクを解決する方法がわかりません。次のように、このパーサーのコードを短くしたいと思います。
parseString = do
res <- between '\"' '\"'
return (HiValueString (pack res))