用线程模拟副作用

Sim*_*son 3 functional-programming

我在看这个频道9说话和一个非常有趣的说法是在围绕60分钟处理.

他说,一旦你引入线程,即使有完全纯粹的功能,你也可以模拟副作用.

他概述的方式是使用C-omega表示法,我不熟悉它,并且已经有相关的语言支持来执行此操作.

我遇到的问题是如何在没有赋值的情况下实现get和set消息处理程序?当然处理程序必须更改一个值,以便线程的内部循环可以记录一个新值?

我错过了什么?我如何在LISP中实现它,例如,没有特殊结构?

Mau*_*Mau 6

我遇到的问题是如何在没有赋值的情况下实现get和set消息处理程序?当然处理程序必须更改一个值,以便线程的内部循环可以记录一个新值?

是的,你是对的.Erik假设每个线程都有自己的消息队列.发送消息时Value(n)明确更改消息队列的状态.他让它听起来比它更神秘:他只是为另一种形式的可变状态交易任务.他正在利用该语言的"前置条件"功能使其语法清晰.

正如他所说,你可以使用传统的IO(他提到控制台IO)来做同样的事情.想象一下Value(n)写入n文件,前提条件Value(T t)检查状态的当前值是否t(在文件中).Voilà,没有任务的可变状态(但现在涉及IO!).