trifecta ライブラリを使用して、末尾の文字を含まない整数文字列を解析し、解析された整数を返すことになっています。
Prelude> parseString (yourFuncHere) mempty "123"
Success 123
Prelude> parseString (yourFuncHere) mempty "123abc"
Failure (interactive):1:4: error: expected: digit,
end of input
123abc<EOF>
次のように do 表記を使用してこれを行うことができました。
x <- decimal
eof
return x
しかし、これをバインド/ラムダに変換することに失敗しました。
これは解析された数値を保持しませんが、それ以外は正しいです:
decimal >> eof
私はこのように始めるべきだと思います
decimal >>= \x -> eof
しかし、この後、私が試したすべての順列は機能しません。解析された数値を返し、do の代わりに bind 構文を使用して eof をチェックするにはどうすればよいですか?