Remote evaluation is a mechanism by which lisp computations may be invoked within loosely coupled, distributed lisp-based applications. The mechanism supports both synchronous and asynchronous behaviors, thus providing the ability to initiate concurrent operations. The programmers is also provided with a mechanism for synchronization of the concurrent operations. The remote-evaluation functionality is provided between a collection of full common lisp programming environments. These environments are viewed as loosely coupled, each with its private, non-shared lisp workspace, and without the ability to cause direct side effects within any other such environment. The remote-evaluation functionality facilities the sharing of computation and data between these loosely coupled workspaces.