packages feed

unamb-0.0: wikipage.tw

[[Category:Packages]]

== Abstract ==

'''unamb''' is a package containing the ''unambiguous choice'' operator <hask>unamb</hask>, which wraps thread racing up in a purely functional, semantically simple wrapper.  Given any two arguments <hask>u</hask> and <hask>v</hask> that agree unless bottom, the value of <hask>unamb u v</hask> is the more terminating of <hask>u</hask> and <hask>v</hask>.  Operationally, the value of <hask>unamb u v</hask> becomes available when the earlier of <hask>u</hask> and <hask>v</hask> does.  The agreement precondition ensures unamb's referential transparency.  For more info about <hask>unamb</hask> and its use, see the paper ''[http://conal.net/papers/simply-reactive/ Simply Efficient Functional Reactivity]'', sections 10 and 11.

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

Besides this wiki page, here are more ways to find out about unamb:
* Read [http://code.haskell.org/unamb/doc/html/ the library documentation].
* Get the code repository: '''<tt>darcs get http://code.haskell.org/unamb</tt>'''.
* Install from [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/unamb Hackage].
* See the [[unamb/Versions| version history]].

Please leave comments at the [[Talk:unamb|Talk page]].