F# の例(3)
F# 版も C# 版と同様に修正します。NumbersServer クラスの GetNumbers メソッドを値を返すだけに変更し、コンストラクターで generator_server.MoveNext() を1回呼び出します。
type NumbersServer() = let mutable current_numbers: Numbers = new Numbers(new LongDecimal(), new LongDecimal(), 0) let GenerateDecimalServer() = let number: LongDecimal = new LongDecimal() let square_difference: LongDecimal = new LongDecimal(3) current_numbers <- new Numbers(number, square_difference, 0) seq { while true do yield current_numbers } let generator_server = GenerateDecimalServer().GetEnumerator() let b = generator_server.MoveNext() member this.GetNumbers: Numbers = generator_server.Current member this.SetNumbers(numbers: Numbers): unit = current_numbers <- numbers member this.Numbers with get(): Numbers = this.GetNumbers and set(value: Numbers) = this.SetNumbers value member this.GenerateDecimalServer_() = let number: LongDecimal = new LongDecimal() let square_difference: LongDecimal = new LongDecimal(3) current_numbers <- new Numbers(number, square_difference, 0) seq { while true do yield current_numbers }