不変のリストのアイデアを使用して成功を収めましたが、ここのコードに来ると困惑します。私は、Scala スタイルよりも Java に近いものを書いたことに気づきました。List(...)
代わりに使用したいのですが、同じ変更された不変を次の関数にBuffer(...)
渡す方法がわかりません。内でも変更されます。List
guesses
eliminate(...)
これをScalaの方法でこれを行うのに役立つ提案は大歓迎です。ありがとう
val randomGuesses = List(...) // some long list of random integers
val guesses = randomGuesses.zipWithIndex.toBuffer
for ( s <- loop()) {
val results = alphaSearch(guesses)
if (results.size == 1) {
guesses(resultes.head._2) = results.head._1
eliminate(guesses, resultes.head._2)
}
else {
val results = betaSearch(guesses)
if (results.size == 1) {
guesses(resultes.head._2) = results.head._1
eliminate(guesses, resultes.head._2)
} else {
val results = betaSearch(guesses)
if (results.size == 1) {
guesses(resultes.head._2) = results.head._1
eliminate(guesses, resultes.head._2)
}
}
}
}