Как включить продолжения в 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