unamb: Unambiguous choice

[ bsd3, concurrency, data, library, other ] [ Propose Tags ]

unamb contains the "unambiguous choice" operator "unamb", which wraps thread racing up in a purely functional, semantically simple wrapper. Originally a part of Reactive, I moved unamb to its own package in order to encourage experimentation.

Project wiki page: http://haskell.org/haskellwiki/unamb

© 2008 by Conal Elliott; BSD3 license.

Contributions from: Luke Palmer, Spencer Janssen, Sterling Clover, Bertram Felgenhauer, Peter Verswyvelen, and Svein Ove Aas. Please let me know if I've forgotten to list you.


[Skip to Readme]

Modules

[Index]

Flags

Automatic Flags
NameDescriptionDefault
test

Enable testing

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0, 0.0.1, 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.2, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.7
Dependencies base (>=4 && <4.5), checkers, QuickCheck (>=2) [details]
License BSD-3-Clause
Copyright (c) 2008 by Conal Elliott
Author Conal Elliott
Maintainer conal@conal.net
Revised Revision 1 made by HerbertValerioRiedel at 2019-01-05T18:42:06Z
Category Concurrency, Data, Other
Home page http://haskell.org/haskellwiki/unamb
Uploaded by ConalElliott at 2009-06-08T16:37:27Z
Distributions FreeBSD:0.2.5, NixOS:0.2.7
Reverse Dependencies 7 direct, 19 indirect [details]
Executables test-unamb
Downloads 15411 total (51 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for unamb-0.2.2

[back to package description]
unamb [1] contains the "unambiguous choice" operator "unamb" [2], which
wraps thread racing up in a purely functional, semantically simple
wrapper.  Given any two arguments u and v that agree unless bottom, the
value of unamb u v is the more terminating of u and v.  Operationally, the
value of unamb u v becomes available when the earlier of u and v does.
The agreement precondition ensures unamb's referential transparency.

unamb was originally a part of Reactive [3].  I moved it to its own
package in order to encourage experimentation.

Please share any comments & suggestions on the discussion (talk) page at
[1].

You can configure, build, and install all in the usual way with Cabal
commands.

  runhaskell Setup.lhs configure
  runhaskell Setup.lhs build
  runhaskell Setup.lhs install

References:

[1] http://haskell.org/haskellwiki/unamb
[2] http://conal.net/papers/simply-reactive
[3] http://haskell.org/haskellwiki/reactive