Proposal: Control.Concurrent.Async

wren ng thornton wren at freegeek.org
Sat Jun 16 07:24:31 CEST 2012


On 6/14/12 5:54 PM, Lauri Alanko wrote:
> Quoting "Simon Marlow" <marlowsd at gmail.com>:
>> Naming is obviously up for discussion too.
>
> I feel that "Async" is a bit too generic and doesn't very precisely
> characterize this particular construct. How about "Future", as similar
> things are called in e.g. Alice
> <http://www.ps.uni-saarland.de/alice/manual/futures.html> and Java
> <http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/FutureTask.html>?

"Future" is a generic term for a particular way of thinking about the 
life cycle of variables (both in AliceML, Mozart/Oz, and in the 
literature). From this perspective *all* variables are futures. For 
example, in the AliceML url you provide, they specifically qualify the 
different kinds of futures:

* concurrent futures --- something like Async

* lazy futures --- what Haskell has by default

* promised futures --- for tying the knot; akin to "static" in Java

* immediate futures (not mentioned on the AliceML page) --- the standard 
all-at-once way of introducing, binding, and evaluating variables.

Of course, the concurrent/lazy/promised qualifiers can be combined since 
they define orthogonal axes of temporal distinction.

-- 
Live well,
~wren



More information about the Libraries mailing list