Lub: Difference between revisions
(new) |
(unamb link; blog post link) |
||
Line 1: | Line 1: | ||
[[Category:Packages]] | [[Category:Packages]] | ||
[[Category:Concurrency]] | |||
== Abstract == | == Abstract == | ||
Lub is an experiment in computing least upper information bounds on (partially defined) functional values. | Lub is an experiment in computing least upper information bounds on (partially defined) functional values. | ||
It provides a <hask>lub</hask> function that is consistent with the | It provides a <hask>lub</hask> function that is consistent with the [[unamb]] operator but has a more liberal precondition. | ||
Where <hask>unamb</hask> requires its arguments to equal when neither is bottom, <hask>lub</hask> is able to synthesize a value from the partial information contained in both of its arguments. | Where <hask>unamb</hask> requires its arguments to equal when neither is bottom, <hask>lub</hask> is able to synthesize a value from the partial information contained in both of its arguments, which is useful with non-flat types. | ||
Besides this wiki page, here are more ways to find out about lub: | Besides this wiki page, here are more ways to find out about lub: | ||
* Read the blog post ''[http://conal.net/blog/posts/merging-partial-values/ Merging partial values]'' | |||
* Visit the [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/lub Hackage page] for library documentation and to download & install. | * Visit the [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/lub Hackage page] for library documentation and to download & install. | ||
* Or install with <tt>cabal install lub</tt>. | * Or install with <tt>cabal install lub</tt>. | ||
* Get the code repository: <tt>darcs get http://code.haskell.org/lub</tt>. | * Get the code repository: <tt>darcs get http://code.haskell.org/lub</tt>. | ||
<!-- * See the [[lub/Versions| version history]]. --> | <!-- * See the [[lub/Versions| version history]]. --> | ||
<!-- Please leave comments at the [[Talk:lub|Talk page]]. --> | |||
Please leave comments at the [[Talk:lub|Talk page]]. | |||
I got inspired for this package after [http://tunes.org/~nef/logs/haskell/08.11.17 stimulating discussions] with Thomas Davie, Russell O'Connor others in the #haskell gang. | I got inspired for this package after [http://tunes.org/~nef/logs/haskell/08.11.17 stimulating discussions] with Thomas Davie, Russell O'Connor others in the #haskell gang. |
Revision as of 21:34, 19 January 2009
Abstract
Lub is an experiment in computing least upper information bounds on (partially defined) functional values.
It provides a lub
function that is consistent with the unamb operator but has a more liberal precondition.
Where unamb
requires its arguments to equal when neither is bottom, lub
is able to synthesize a value from the partial information contained in both of its arguments, which is useful with non-flat types.
Besides this wiki page, here are more ways to find out about lub:
- Read the blog post Merging partial values
- Visit the Hackage page for library documentation and to download & install.
- Or install with cabal install lub.
- Get the code repository: darcs get http://code.haskell.org/lub.
I got inspired for this package after stimulating discussions with Thomas Davie, Russell O'Connor others in the #haskell gang.