はじめに 連載「C#プログラマのためのF#入門」最終回となる今回は、コンピュテーションエクスプレッション(計算式)について説明します。 コンピュテーションエクスプレッションは、F#で記述されたあるコードをどのように動作させるか独自の解釈で定義したり、他の言語に変換する機能です。F#言語構造のサブセットの意味解析を上書きするような機能と言えます。例えばwhile、return、yieldなどのF#キーワードの仕様を再定義できるのです。 関数型プログラミングのデータ制御、および副作用の管理に使用できる関数型プログラミングの機能であるモナドのF#版とも言えるでしょう。モナドと呼ばない理由は、響きが悪い(とっつきにくい)とか、副作用がF#の型システムによってトラックされない(モナドでは副作用は全てモナドにリフトされる)ようにできるところなど、小さな違いがあるからだそうです。コンピュテーションエクス
