パーサーの定義の最後にある (input)
の文法的な意味を教えてください
Rustでは、関数は値を返すことができますが、その返り値は最後に評価された式です。この特性を利用して、関数の本体を括弧で囲むことで、その関数が別の関数に引数として渡されることを可能にします。このパターンは、高階関数(他の関数を引数として取る関数)を使用する際によく見られます。
ここでの (input) は、nom パーサーコンビネータの一部で、これは関数を返します。この関数は、入力文字列(ここでは input)を引数として取り、パース結果を返します。つまり、 (input) はパーサー関数を実行しています。
例えば、以下のコードを見てみましょう: