コンピューテーション式
コンピューテーション式とは
計算(プログラムの実行)には様々な形式がありますが、主にシングルスレッドで処理されます。 「一つのスレッド(道)で全てを処理する」という事です。 コンピューテーション式により、アプリケーションの特定部分で実行する必要がある状況依存の計算をエンコードするための統一された構文・抽象化モデルが提供されます。 全てのコンピューテーション式は「ビルダー」型によってサポートされます (この後に紹介する式で使える構文だと思ってください)
使用できる式
let!
let!を使用することでコンピューテーション式の呼び出し結果が変数に割り当てられます。
and!
let!を複数使用すると高負荷が掛かってしまうため、連続で割り当てを行う場合はand!を使用する必要があります。
do!
do!を使用することでunit型(戻り値なし)を返すコンピューテーション式を呼び出せます
yield
yieldはコンピューテーション式から値を返し反復処理を行う型(IEnumerable<'T>)に変換します。(シーケンス式に使われます)
yield!
yield!はコンピューテーション式からの値をフラット(全て値にする)キーワードです。恐らく値を追加するという事だと思われます (こちらもシーケンス式でよく使われます)
return
returnはキーワードの通り、コンピューテーション式が完了したときに値が戻ります。Cなどの「return」と同じです
return!
return!キーワードによりコンピューテーション式が終わり次第、値を割り当て戻します
match!~with
match!~withにより別のコンピューテーション式にインライン化し、値のパターンマッチを行えます
while!~do
while~doもインライン化し、ループ処理を行えるようになっています (F#8.0にて追加)
最終更新