См. Ответ Аймена для общих указаний. После обновления вы получаете следующий эффект.
Kostka.value
имеет тип List[Int]
. lst
имеет тип List[A]
. Результат добавления (++
) является наименее распространенным супертипом List[Int]
и List[A]
, который равен List[Any]
. Но List[Any]
не является подтипом List[A]
. Вот почему вы получаете несоответствие типов.
Ваш Fill
метод не должен быть универсальным, если только вы не сделаете Kostka
универсальным тоже.
Кроме того, использование new Kostka
в сочетании с инициализацией PRNG также выглядит странно.
Наконец, в Scala 2.8 есть метод fill
для попутчиков коллекции:
scala> val r = new java.util.Random
r: java.util.Random = java.util.Random@14a616
scala> List.fill(10) {r.nextInt(6+1)}
res4: List[Int] = List(3, 6, 4, 1, 2, 4, 0, 4, 6, 4)
и, если ваши кости не 7-гранные, вы можете пойти на
scala> List.fill(10) {r.nextInt(6) + 1}
res5: List[Int] = List(2, 5, 2, 1, 1, 4, 4, 2, 6, 3)
вместо.