Трудно использовать Scala Worksheets в IntelliJ - PullRequest
4 голосов
/ 19 мая 2019

Я следую курсу Принципов функционального программирования в Scala, но у меня возникает множество проблем при использовании Scala Worksheets в IntelliJ для проведения быстрых тестов.

Например, я настроил новый проект Scalaгде я создал объект пакета с именем lecture5 (он находится в файле) src/main/scala/lecture5/package.scala

Содержимое файла:

package object lecture5 {

  def last[T](xs:List[T]): T =  xs match {
    case List() => throw new Error("empty list")
    case List(x) => x
    case x :: y => last(y)
  }

  /* init should return all elements but last */
  def init[T](xs: List[T]): List[T] = xs match {
    case List() => throw new Error("List is empty")
    case List(x) => List[T]()
    case y :: ys => y :: init(ys)
  }

  def concat[T](xs: List[T], ys: List[T]): List[T] = xs match {
      case List() => ys
      case z:: zs => z :: concat(zs, ys)
    }
}

На рабочем листе у меня есть следующее:

import lecture5._


val x = List("a","b","c")

val xs = List("a","b")
val ys = List("c")

last(x)

init(x)

concat(xs, ys) == x

В настройках рабочего листа я проверил Interactive Mode, Make project before run и использую Run Type = REPL (Plain почему-то не работает) и Compiler profile = Default.

Когда я нажимаю кнопку «play», чтобы запустить рабочий лист, функции init и last работают, но для функции concat появляется ошибка:

Error:(13, 9) not found: value concat
concat(xs, ys) == x

Почемуconcat не найден?

Обратите внимание, что если я использую консоль Scala из sbt-shell и выполняю те же команды, то все работает.

Как настроить IntelliJ для работы сРабочий лист без проблем?

1 Ответ

3 голосов
/ 19 мая 2019

Я повторил проблему на IntelliJ 2019.1.2, Scala Plugin 2019.1.8. Никакая форма построения проекта перед запуском рабочего листа не сработала. Объект пакета был успешно импортирован после Invalidate Caches / Restart.... Обходной путь, который мне подходит без перезагрузки, - это использование Scala Scratch file вместо Scala Worksheet:

Right click project | New | Scratch file | Scala

Возможно, связано с проблемой SCL-12890

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...