931bb66aa5
The Haskell Ports Library (HPL) supports concurrent and distributed computing in the IO monad _without_ relying on mutable variables. Instead, it supplies monotone single-assignment variables and ports abstractions. Ports are an abstraction for modelling variables whose values evolve over time without the need to resort to mutable variable, such as IORefs. More precisely, a port represents all values that a time-dependent variable successively takes as a stream, where each element of the stream corresponds to a state change. Ports are ideally suited for purely functional GUI interfaces that completely avoid the use of mutable variables. It is planned to extend the library to interaction between different processes possibly located on distinct processing nodes. ok pvalchev@
18 lines
920 B
Plaintext
18 lines
920 B
Plaintext
The Haskell Ports Library (HPL) supports concurrent and distributed
|
|
computing in the IO monad _without_ relying on mutable variables.
|
|
Instead, it supplies monotone single-assignment variables and ports
|
|
abstractions.
|
|
|
|
Ports are an abstraction for modelling variables whose values evolve
|
|
over time without the need to resort to mutable variable, such as
|
|
IORefs. More precisely, a port represents all values that a
|
|
time-dependent variable successively takes as a stream, where each
|
|
element of the stream corresponds to a state change - we can also say
|
|
that a port represents a time series. Moreover, a port supports
|
|
concurrent construction of the time series, or stream of values.
|
|
|
|
Ports are ideally suited for purely functional GUI interfaces that
|
|
completely avoid the use of mutable variables. It is planned to extend
|
|
the library to interaction between different processes possibly
|
|
located on distinct processing nodes.
|