99:99:99のような入力ができてしまいますが、月の入力範囲を1~12に制限するといった制約をかけることも、これまで説明した範囲で簡単に実現できますという記述があったので、値の入力範囲に制限があるバージョンを書いてみた。具体的にはguardを使う*2。それぞれが満たすべき条件式を渡す。パースした結果得られた整数がguardに渡した条件を満たさないとき、結果がemptyになる。"empty"が実行される。この時点でパースが中止される。それぞれの関数を組み合わせることでApplicativeスタイルでパーサを表現できている。引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。