Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class MyFlappingPingPongActor extends Actor {
case class Ping()
case class Pong()
case class Miss()
case class Failure(msg: String)
def successfulPing: Receive = {
case Ping => {
sender ! Pong()
context become failPing
}
case Pong => {
sender ! Ping()
}
}
def failPing: Receive = {
case Ping => {
sender ! Miss()
context become successfulPing
}
case _ => {
sender ! Failure("I'm sad, no actions until I'm happy again!")
}
}
def receive = sucsessfulPing
}
при этом можно явно контролировть, что произойдёт с остальными сообщениями (в случае добавления matchAny они будут прочитаны из MailBox и их можно обработать, иначе они там остаются).
Crystal… Прямо и четко говорю, что это супер производительный клон Ruby. Больше сказать нечего, весь он пропитан его духом.я бы добавил что очень и ОЧЕНЬ сырой клон Ruby
«Go, Rust, Nim, Crystal» и, все они очень круты в своих определенных областях.А в какой области крут Pony?
сейчас скорость передачи между акторами достигает 20кк в секундуА чего так медленно? Судя по бенчмаркам Akka.NET у них 28КК было в начале года. У JVM-овской акки 50КК, ибо кодовую базу успели нормально оптимизировать.
actor Main
var _env: Env
new create(env: Env) =>
_env = env
env.out.print("Hello, sandbox.")
try
err(1) // or err(2)
else
env.out.print("Error in program")
end
fun err(n: U64) ? =>
if n == 1 then
_env.out.print("Error in one if")
error
end
if n == 2 then
_env.out.print("Error in two if")
error
end
Pony — убийца...?