Play Framework始めました。
Scala良いよScala って思ってたけど、案外イバラの道感。
先日Rubyで実装したものと同じ物をScalaでやってみました。
あれ?Scalaってもっと格好良く書けるんじゃねえの?あれ?あれえ?
chooser.scala
val makeRandomChooser = (shops : List[Shop]) => {
val sortedList = shops.sort(_.likely > _.likely)
var likeSum = 0.0
sortedList.foreach(likeSum += _.likely)
val targetList = sortedList.map{tem => new Shop(0, tem.name, tem.likely / likeSum)}
println(targetList)
sortedList.foreach(likeSum += _.likely)
def choosen (targetList : List[Shop], likeSum : Double) = {
val rand = Math.random
var sum = 0.0
val result = targetList.find{(shop: Shop) =>
sum += shop.likely
rand < sum
}
if(result == None){
targetList.last
} else {
result.get
}
}
choosen(targetList, likeSum)
}