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
などを使って並列に実行するのでもよいかと思います。