Skip to content

Instantly share code, notes, and snippets.

@codahale
Created March 8, 2011 07:05
Show Gist options
  • Save codahale/859974 to your computer and use it in GitHub Desktop.
Save codahale/859974 to your computer and use it in GitHub Desktop.

“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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment