一意性とは一度しか使われないことのため、2か所で使われているとエラー
これとにているという話をした。無論、下のものは何度も使ってもエラーにはならないが。
def intDouble(rng: RNG): ((Int, Double), RNG) = { val (i, r1) = rng.nextInt val (d, r2) = double(r1) ((i, d), r2) } def doubleInt(rng: RNG): ((Double, Int), RNG) = { val ((i, d), r) = intDouble(rng) ((d, i), r) } def double3(rng: RNG): ((Double, Double, Double), RNG) = { val (d1, r1) = double(rng) val (d2, r2) = double(r1) val (d3, r3) = double(r2) ((d1, d2, d3), r3) }