Как включить продолжения в Scala?

Вопрос говорит сам за себя.

(Тем не менее, детали того, как получить доступ к shift а также reset операции изменились за эти годы. Старые записи блога и ответы на переполнение стека могут содержать устаревшую информацию.)

Смотрите также Что такое продолжение Scala и зачем их использовать? который говорит о том, что вы можете сделать с shift а также reset как только вы их получите.

2 ответа

Решение

Scala 2.11

Самый простой способ - использовать sbt:

scalaVersion := "2.11.6"

autoCompilerPlugins := true

addCompilerPlugin(
  "org.scala-lang.plugins" % "scala-continuations-plugin_2.11.6" % "1.0.2")

libraryDependencies +=
  "org.scala-lang.plugins" %% "scala-continuations-library" % "1.0.2"

scalacOptions += "-P:continuations:enable"

В своем коде (или REPL) сделайте import scala.util.continuations._

Теперь вы можете использовать shift а также reset к вашему сердцу.

историческая справка для Scala 2.8, 2.9, 2.10

Вы должны начать скала (или скаляр) с -P:continuations:enable флаг.

В своем коде делай import scala.util.continuations._

Теперь вы можете использовать shift а также reset к вашему сердцу.

Если вы используете SBT 0.7, см. https://groups.google.com/forum/.

Если вы используете SBT 0.11+, см. https://gist.github.com/1302944

Если вы используете maven, см. http://scala-programming-language.1934581.n4.nabble.com/scala-using-continuations-plugin-with-2-8-0-RC1-and-maven-td2065949.html

Решение не SBT:

scala -Xpluginsdir /.../scala/lib/ -P:continuations:enable

Работает на Scala 2.11.6, но плагин / библиотека сказали, что он больше не будет включен в Scala 2.12

Другие вопросы по тегам