76ページで、関数をパーサーとして定義します。itemこれは、を取り、String返す[(Char, String)]か[]、失敗した場合に返される関数です。
sat78ページで、述語を取り、pその周りにパーサー構造を「ラップ」する関数を定義します。
p :: (Char -> Bool) -> Parser Char
sat p = do x <- item
if p x then return x else failure
私が理解していないのはの魔法<-ですか?の結果がitem空でない場合、この演算子はリストをアンラップし、タプルから最初の項目をフェッチする必要があります。そうでない場合は、述語を詰まらせないものを生成する必要があります。私は何が欠けていますか?