
Stijn De Saeger
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