koyama41
ざっと見、ネストが深くなった最初の行の空白を二重にパースしようとしている感じがします(whenJust mNumofSpaces のところで一回、その行自体を含めて続きを many1 $ do でパースしつづけるので、その行は blockParser (Just $ numOfSpaces + s) でもう一回)。
Right
[ List
[ ListItem "list1"
, ListItem " item1"
, ListItem " item2"
, ListItem " item3"
, ListItem "list2"
, ListItem "list3"
]
]
\s[^\s] でパースすると bar (空白1つ) にマッチして foo (空白2つ)にマッチしないようになるので、まずはこれをitemParserみたいに名付けて、あとはそれ以前の空白の数でネストを数えると、字句解析がうまくいきそう :face_with_rolling_eyes: foo (空白1つ)は itemParser で、 faa (空白2つ)は \s >> itemParser で、 waa (空白3つ)は \s >> \s >> itemParser でindentの数
servant が、どれだけの数のパッケージから依存されているかはわかります。servant だけでなく、パッケージ a, b, c,... と候補が複数あったとき、どれがどれだけ非依存数をもっているか、のリストです。if ってのがグローバルなスコープでは駄目だよって言ってますね。スコープって言っていいのか分りませんけど。。。 誤解されるような言い方をすれば、インデントしてないところじゃ使えんよ。 って事なんでしょ。(厳密には libraryか、executableの中だけ)Conditional blocks may appear anywhere inside a library or executable section
if impl(ghc < 8.2.0) buildable: False
自分はスクリプトというものを今まで組んだことがないのですが、書き方等をご教授願えないでしょうか?
quickCheckWithResult stdArgs { chatty = False } prop
async などを使って並列に実行するのでもよいかと思います。