“This is done through the mechanism of futures, which are roughly Algol-60 ‘thunks’ which have their own evaluator process (‘thinks’?). (Friedman and Wise call futures ‘promises’, while Hibbard calls them ‘eventuals’.) When an expression is given to the evaluator by the user, a future for that expression is returned which is a promise to deliver the value of that expression at some later time, if the expression has a value. A process is created for each new future which immediately starts to work evaluating the given expression. When the value of a future is needed explicitly, e.g., by the primitive function +
, the evaluation process may or may not have finished. If it has finished, the value is immediately made available; if not, the requesting process is forced to wait until it finishes.”
Baker et al. The incremental garbage collection of processes. Proceedings of the 1977 symposium on Artificial intelligence and programming languages (1977)