我有一些应用程序架构,其中用户输入流到某些自动机,它在事件流的上下文中运行,并将用户引导到应用程序的不同部分.应用程序的每个部分都可以根据用户输入执行某些操作.但是,应用程序的两个部分是共享某个状态,并且在概念上是读取和写入同一个状态.需要注意的是,两个"线程"没有同时运行,其中一个"暂停"而另一个"产生"输出.描述这种状态共享计算的规范方法是什么,而不需要求助于某些全局变量?两个"线程"是否有意义保持本地状态通过某种形式的消息传递同步,即使它们不是以任何方式并发?
没有代码示例,因为问题更具概念性,但欢迎使用Haskell(使用任何FRP框架)或其他语言的示例答案.