计划的部分评估

时间:2012-02-13 22:11:03

标签: scheme ironscheme

我正在尝试在分布式系统中使用Scheme。我们的想法是,一个进程会评估一些表达式并将其传递给另一个进程来完成。

示例:

(do-stuff (f1 x) (f2 x))

将评估为

(do-stuff res1 (f2 x))

在第一个过程中。此过程将表达式作为字符串传递给另一个进程(在另一个节点上),该进程将其评估为

(do-stuff res1 res2)

这个想法是做一个地图缩小样式工作分配,但是通过传递方案表达式。这可能吗?任何指针都会有所帮助。 (我正在使用IronScheme btw)。

2 个答案:

答案 0 :(得分:1)

由于Aslan986建议您需要支持完整延续。不幸的是,Ironscheme并不支持完整的延续,而只支持转义延续,这就是调用堆栈。参见Ironscheme的known limitations。此外,您需要序列化continuation,以便能够将它们从一个进程传递到另一个进程。一般情况下,这并不总是可行,只有少数Scheme系统支持。一个例子是Gambit-C。有一个演示文稿,展示了如何实现distributed computing系统。

答案 1 :(得分:0)

这不是一个真正的答案,只是一个提示。

你尝试过延续吗? Here

我认为可以做你需要的。