我正在尝试创建一个具有选项管道的 Scala Actor。我希望能够向这个actor发送选项消息,然后它会继续调用选项管道并对结果做一些事情。如果这样的东西已经存在,你知道我在哪里可以找到它吗?
请在下面找到我的代码以及我遇到的奇怪编译错误:
“SBT 构建器在编译您的项目时崩溃。这是 Scala 编译器或 SBT 中的错误。请查看错误日志了解详细信息。错误消息为:null”
MonadChainActor.scala
import scala.actors.Actor
class MonadChainActor[T](monadChain: Option[T]=>Option[T]) extends Actor {
case class OptionMessage(o:Option[T])
def act() {
while(true){
receive {
case OptionMessage(o) => println(monadChain(o).get)
}
}
}
}
Main.scala
def monadIntChain(a:Option[Int]):Option[Int] =
a.map(x => x+1).map(x => x+1).map(x => x+1)
object Main {
def main(args: Array[String]): Unit = {
var a = new MonadChainActor(monadIntChain)
a ! a.OptionMessage(Some(1))
}
}