Я пытаюсь написать универсальный итератор, который обрабатывает последовательность Фибоначчи:
def FibIter[T](fst:T , snd:T)(implicit num:Numeric[T]) = new Iterator[T] {
var fn1 = fst
var fn2 = snd
def hasNext = true
def next() = {
val ret = fn1
fn1 = fn2
fn2 = num.plus(ret,fn2)
ret
}
}
Однако компилятор жалуется на первые два назначения переменных:
Тип параметра в структурном уточнении может не относиться к абстрактному типу, определенному вне этого уточнения
У кого-нибудь есть идеи, как решить эту проблему?
Большое спасибо!