エレファント・ビジュアライザー調査記録

ビジュアルプログラミングで数式の変形を表すことを考えていくブロクです。

関数プログラミングと無限論理多項式(15)

C# の例(6)

ブラウザーで計算する場合」でサーバー側でも計算していましたが、これは必要ないので修正します。NumbersServer クラスの GetNumbers メソッドを、以下のように値を返すだけに変更します。

        private Numbers GetNumbers()
        {
            return generator_server.Current;
        }

この場合、yield を使ったものと、IEnumerable<T> インターフェイスのクラス IteratorImpl を作ったものは以下のようにコンストラクターで generator_server.MoveNext() を1回呼び出します。これは IEnumerable<T> を使ったバージョンでは GenerateDecimalServer() を呼び出しただけでは何も行われないので、最初の値が取得できないためです。

        public NumbersServer()
        {
            generator_server = GenerateDecimalServer().GetEnumerator();
            generator_server.MoveNext();
        }