Ответ 1
Откройте example.Lists, вы увидите ниже строки:
def sum(xs: List[Int]): Int = ???
def max(xs: List[Int]): Int = ???
используйте 0
вместо ???
.
Вот мой код:
package example
object Lists {
def max(xs: List[Int]): Int = {
if(xs.isEmpty){
throw new java.util.NoSuchElementException()
}
else {
max(xs.tail)
}
}
}
Когда я запустил его в консоли sbt:
scala> import example.Lists._
scala> max(List(1,3,2))
У меня есть следующая ошибка:
Scala.NotImplementedError: an implementation is missing
Как я могу это исправить?
Спасибо.
Откройте example.Lists, вы увидите ниже строки:
def sum(xs: List[Int]): Int = ???
def max(xs: List[Int]): Int = ???
используйте 0
вместо ???
.
Кроме того, помещая правильную рекурсивную реализацию для max, которая должна работать
def max(xs: List[Int]): Int = {
if(xs.isEmpty){
throw new java.util.NoSuchElementException()
}
val tailMax = if (xs.tail.isEmpty) xs.head else max(xs.tail)
if (xs.head >= tailMax){
xs.head
}
else tailMax;
}
У меня была такая же проблема, потому что я не вышел из консоли Scala (в IntelliJ) из sbt с помощью команды:
scala> :q
а затем перезапустил консоль из sbt, чтобы все можно было скомпилировать снова.
> console
Нет необходимости перезапускать sbt.
У меня такая же проблема. Но я исправил это.
Решение состоит в том, что вы должны перезапустить "консоль sbt" и снова импортировать модуль, он отлично работает.