Ich habe versucht, alles zu finden, das diskutiert, wenn Sie die Verwendung von Monaden über Akteure bevorzugen (in Parallelitätsszenarien), aber ich habe nichts gefunden. Insbesondere frage ich mich über die Verwendung der Reactive Extensions (LINQ to Events) vs F # 's MailboxProcessor. Bitte geben Sie Beispiele zu philosophischen Überlegungen, die Sie haben könnten.Monaden und Schauspieler
Update Für einen besseren Kontext implementieren die Reactive Extensions die Continuation Monad in Form von IObservable/IObserver. Ich sage nicht unbedingt, dass ich F # verwenden muss, nur dass F # ein konkretes "Akteurmodell" in einer .NET-Sprache in Form von MailboxProcessor < 'T> hat.
Was ich versuche zu verstehen, ist, wenn eine Monade (in diesem Fall eine Fortsetzung Monade) gegen ein Akteurmodell für den gemeinsamen Zugriff verwendet wird. Wo die Monade (wie ich es verstehe) keinen Staat einführt, hat der Akteur seinen eigenen internen Zustand, der so modifiziert wird, dass er einen geschützten Zugang bietet.
Ich habe eine Reihe von Beispielen für die Verwendung von beiden gesehen: Rx und node.js (CPS, nicht wirklich die Fortsetzung monad) vs. F # MailboxProcessor und Scala Akka-Framework. Ich weiß einfach nicht, warum du dich für eines entscheiden würdest.
Dies wird wahrscheinlich für Sie völlig nutzlos sein, da ich f # weiß nicht, und nicht wirklich verstehen, wo Ihre Frage kommt, aber ich schrieb, die eine Schauspieler Modellimplementierung in Haskell Verwendung von Monade macht stack (eine Actor-Berechnung ist eine Reader/IO-Monade): http://hackage.haskell.org/packages/archive/simple-actors/0.1.0/doc/html/Control-Concurrent-Actors.html – jberryman
[Phil Trelford ] (http://twitter.com/ptrelford) hat auch eine Implementierung von [Rx mit Schauspielern] (http://minirx.codeplex.com/) erstellt, so dass es scheint, dass, je nachdem, was Sie tun, Sie könnte Akteure mit Monaden oder Monaden unter Verwendung von Schauspielern implementieren. –
Ein weiteres Stück, das Ihnen vielleicht nicht behagt. Ich habe einmal darauf hingewiesen, dass der primäre Zweck von Rx nicht darin besteht, Nebenläufigkeit einzuführen, sondern sie anzugehen. Während man F # -Agenten als einen geeigneten Weg betrachten kann, um Nebenläufigkeit einzuführen. –