Частичная оценка в Схеме - PullRequest
       14

Частичная оценка в Схеме

3 голосов
/ 14 февраля 2012

Я пытаюсь использовать Scheme в распределенной системе. Идея состоит в том, что один процесс оценит некоторые выражения и передаст его другому процессу для завершения.

Пример:

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

будет оцениваться до

(do-stuff res1 (f2 x))

в первом процессе. Этот процесс передает выражение в виде строки другому процессу (на другом узле), который оценивает его как

(do-stuff res1 res2)

Идея состоит в том, чтобы сделать карту, чтобы уменьшить распределение стилей, но передавая выражения схемы вокруг. Это возможно? Любые указатели будут полезны. (Кстати, я использую IronScheme).

Ответы [ 2 ]

1 голос
/ 13 июня 2012

Как Аслан986 предположил, что вам нужна поддержка для полных продолжений. К сожалению, Ironscheme не поддерживает полные продолжения, а только escape-продолжения, которые увеличивают количество вызовов. См. известные ограничения Ironscheme. Кроме того, вам нужно сериализовать продолжения, чтобы иметь возможность передавать их из одного процесса в другой. В общем, это не всегда возможно, и лишь немногие системы Scheme поддерживают это. Одним из примеров является Gambit-C . Существует презентация, в которой показано, как реализовать систему распределенных вычислений .

0 голосов
/ 11 мая 2012

это не реальный ответ, а просто подсказка.

Вы пробовали с продолжениями? Здесь

Я думаю, что может сделать то, что вам нужно.

...