class Rational(n:Int, d:Int)
{
private def gcd(x:Int, y:Int): Int =
{
if (x==0) y
else if (x<0) gcd(-x, y)
else if (y<0) -gcd(x, -y)
else gcd(y%x, x)
}
private val g = gcd(n,d)

val numer:Int = n/g
val denom:Int = d/g

//略
}

本やWeb上で見かける例なんだけど、gは初期化の時しか使わないからフィールドである必要ないんだけど
プライマリコンストラクタで一時変数みたいのは定義できないのですか?
Rationalがgをフィールドに持つのは無駄なんですけど