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

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

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

Go の例(3)

Go のゴルーチンを使わない例も同様に修正します。NumbersServer 構造体の GetNumbers メソッドで計算をしないようにします。コンストラクターで current_numbers に設定する必要はないので削除します。

type NumbersServer struct {
	current_numbers  *Numbers
	generator_server *IteratorSimpleImpl_Numbers
}

func newNumbersServer() *NumbersServer {
	xyz := new(NumbersServer)
	xyz.generator_server = xyz.GenerateDecimalServer()
	return xyz
}
func (xyz *NumbersServer) GetNumbers() *Numbers {
	return xyz.generator_server.GetCurrent()
}
func (xyz *NumbersServer) SetNumbers(numbers *Numbers) {
	xyz.generator_server.SetCurrent(numbers)
}
func (xyz *NumbersServer) GenerateDecimalServer() *IteratorSimpleImpl_Numbers {
	number := newLongDecimal([]int{})
	square_difference := newLongDecimal([]int{3})
	current_numbers := newNumbers(number, square_difference, 0)
	next := func() bool {
		return true
	}
	getCurrent := func() *Numbers {
		return current_numbers
	}
	setCurrent := func(val *Numbers) {
		current_numbers = val
	}
	return newIteratorSimpleImpl_Numbers(next, getCurrent, setCurrent)
}