[Haskell-cafe] practice problems?
Paul Johnson
paul at cogito.org.uk
Sun Sep 3 12:32:31 EDT 2006
"Brian Hulley" <brianh at metamilk.com> wrote:
What about a library for interval arithmetic [1]?
I'd imagine it could start something like:
data Interval a = Interval !a !a deriving (Eq, Show)
instance Num a => Num (Interval a) where
Interval llow lhigh + Interval rlow rhigh = Interval (min llow rlow)
(max lhigh rhigh)
The Interval type would probably need to explicitly represent
several kinds
of intervals eg (-infinity, x] etc and there are some tricky issues
about
what to do with the operations whose result sometimes needs to be
represented by more than one interval to be useful such as division
by an
interval containing zero eg you might want to use a list of
intervals to
deal with these cases:
instance Num a => [Interval a] where
...
ie
[Interval 5 5] / [Interval -1 1] = [FromNegInfinityTo -5,
ToPosInfinityFrom 5]
Take a look at my Ranged Sets library at
http://sourceforge.net/projects/ranged-sets
Paul.
More information about the Haskell-Cafe
mailing list