mapValues
ちょうど今、それがビューを生み出すことを知って驚いています。結果を次の例に示します。
case class thing(id: Int)
val rand = new java.util.Random
val distribution = Map(thing(0) -> 0.5, thing(1) -> 0.5)
val perturbed = distribution mapValues { _ + 0.1 * rand.nextGaussian }
val sumProbs = perturbed.map{_._2}.sum
val newDistribution = perturbed mapValues { _ / sumProbs }
アイデアは、私がいくつかのランダム性で摂動されている分布を持っているということです、そしてそれを再正規化します。コードは実際には本来の意図で失敗します。mapValues
を生成するためview
、が使用_ + 0.1 * rand.nextGaussian
されるたびに常に再評価さperturbed
れます。
私は今、distribution map { case (s, p) => (s, p + 0.1 * rand.nextGaussian) }
のようなことをしていますが、それは少し冗長です。したがって、この質問の目的は次のとおりです。
- この事実に気づいていない人々に思い出させてください。
mapValues
それらが出力を作成する理由を探しview
ます。- コンクリートを製造する別の方法があるかどうか
Map
。 - このトラップを持つ他の一般的に使用される収集方法はありますか?
ありがとう。