私は F# のさまざまな部分に頭を悩ませようとしてきました (私は C# のバックグラウンドを持っています)、そしてパーサーに興味を持ったので、F# パーサー コンビネーターに関する次のブログ記事に飛びつきました。
http://santialbo.com/blog/2013/03/24/introduction-to-parser-combinators
ここにあるサンプルの 1 つは次のとおりです。
/// If the stream starts with c, returns Success, otherwise returns Failure
let CharParser (c: char) : Parser<char> =
let p stream =
match stream with
| x::xs when x = c -> Success(x, xs)
| _ -> Failure
in p //what does this mean?
しかし、このコードについて私を混乱させたものの 1 つは、in p
ステートメントです。in
MSDNドキュメントでキーワードを調べました:
http://msdn.microsoft.com/en-us/library/dd233249.aspx
私はまた、この以前の質問を見つけました:
どちらも同じ使い方ではないようでした。適合するように見える唯一のことは、これがパイプライン構造であることです。