Option パイプラインを持つ Scala アクターを作成しようとしています。このアクターにオプション メッセージを送信できるようにしたいと考えています。これにより、オプション パイプラインが呼び出され、結果に対して何らかの処理が行われます。このようなものがすでに存在する場合、どこで見つけられるか知っていますか?
私が得ている奇妙なコンパイルエラーとともに、以下の私のコードを見つけてください:
「プロジェクトのコンパイル中に 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))
}
}