News for hackers. Stuff that matters.
Re:Finite State Machines by user-the-name on Monday February 22, 2021 @08:16AM (#26224127)
That means you are not able to interrupt your state machine easily, or to serialise its state. That might be OK in a lot of cases, but not all.
Re:Finite State Machines by klibertp on Monday February 22, 2021 @10:26AM (#26225552)
Function objects, including closures, can be serializable - they are in Erlang/Elixir. You can send a lambda/closure over to another node (on another machine) to execute. It's actually one of the basic building blocks of OTP.
Re:Finite State Machines by user-the-name on Monday February 22, 2021 @11:19AM (#26226248)
I assume this only works if the functions are exactly the same. It would break between different versions?
Re:Finite State Machines by rad_gruchalski on Monday February 22, 2021 @05:24PM (#26231503)
It depends. It’s possible to provide a mechanism to switch versions but as it very often is: there are dragons.
Re:Finite State Machines by hderms on Monday February 22, 2021 @09:20AM (#26224822)
Seems like trampolining would be useful to make it interruptible while still mostly preserving the ergonomics of viewing state transitions as procedure calls
Re:Finite State Machines by dragonwriter on Monday February 22, 2021 @11:23AM (#26226300)
Serializable closures (even serializable continuations) are available in a number of languages, including probably most often ones which also have TCO.