']'もしパーザに空白を無視させたいのなら、パーザ定義の中でこれを明確にする必要があります。何を空白として受け入れるか定義する必要があります。いう文字の列をまとめてスキップします。パーザを挿入しないといけません。一般に、後戻り(以下で説明します)の必要を減らすために、ひとつ要素をパースした後で空白をスキップする、つまり先頭からの空白ではなく後ろに連なる空白をスキップするのがベストです。パーザはまだ先頭にある空白をスキップしませんが、それは他のパーザが後ろに続くすべての空白をスキップしてくれていることと併せれば必要がないからです。ストリームの終端に到達していない場合にエラーを生成します。これは入力がすっかり消費されきったか確かめるのに便利です。文字や文字列、数値、そして空白のための様々な組み込みパーザが含まれています。この章では文字と文字列のパーザを少し紹介します。省略)をいくつか適用したものは既に見てきており、それらは入力にある文字列定数を単純にスキップするものでした。パーザが成功したら、スキップした文字列をパーザ結果として返してもいました。コンビネータも使いました。このコンビネータの詳細について以下で議論してみましょう。どちらも「パーザ」と言っています。返す関数ですが、(パラメータをとる)パーザとして単に述べた方が便利です。どちらを使おうとパフォーマンスに何の違いも出てきません。他の組み込みパーザやコンビネータのほとんどについて、一般により速いので、パーザ結果の値を必要としない時は「skip」が名前の最初についているものを使うようにした方が良いでしょう。見れば、たくさんの組み込みパーザやコンビネータに「skip」付きのものが見られるでしょう。1.0格納されている文字がある基準を満たさないといけないような文字列変数をパースする必要がある、ということはよくあります。プログラミング言語中の識別子はしばしば文字かアンダースコアで始まり、文字や数字、アンダースコアが続く必要があります。文字列パーザを使いましたが、これは文字述語(つまり、入力に文字をとり、真偽値を返すような関数)を基に文字列をパースするためのいくつかあるプリミティブのひとつです。最初の文字が最初の文字述語を満たし、残りの文字が2番目の述語を満たす(なので名前に「Satisfy2」が入っています)ような1つ以上の文字(なので名前に「many1」が入っています)からなる任意のシーケンスをパースします。3番目の引数から与えられる文字列のラベル(なので名前に「L」がh(ry)は期待する入力を表すためにエラーメッセージ中で使われます。パーザを使うと良いでしょう。多くの文字列形式はとても複雑なのでいくつかの文字や文字列の基本パーザを組み合わせる必要があります。与えられた述語関数を満たす任意の文字をパースします。引数の文字列に含まれる任意の文字をパースします。普通の文字とエスケープ文字の両方をパースできます。与えられた文字パーザで文字シーケンスをパースし、結果を文字列として返します。コンビネータを使いましたが、これは与えられた文字列パーザで文字列シーケンスをパースし、結合した形式で文字列を返します。