Stijn De Saeger <[EMAIL PROTECTED]> writes: > But, like you mentioned in your post, now I find myself needing a > notion of subset relations, and since you obviously can't define > equality over functions, i'm stuck again.
Perhaps one can define an approximate equality, with an error bound? Define the sets with a maximal boundary, and check points within the combined boundary. You can only be sure about the answer if it is 'False', 'True' should be interpreted as "maybe" :-). An inplementation could look something like (untested): data RSet = RSet {isin :: Double -> Bool, bounds :: (Double,Double) } equals :: Double -> Rset -> RSet -> Bool equals epsilon s1 s2 = and (map (equals1 s1 s2) [l,l+epsion..h] where l = min (fst $ bounds s1) (fst $ bounds s2) h = max (snd $ bounds s1) (snd $ bounds s2) Or you could use randomly sampled values (and perhaps give a statistical figure for confidence?), or you could try to identify the boundaries of each set, or.. > Do you know any way around this problem, or have i hit a dead > end...? Simulating real numbers on discrete machinery is a mess. Join the club :-) -kzm -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe