On 27/09/2011, at 3:54 PM, Donn Cave wrote: > Quoth "Richard O'Keefe" <o...@cs.otago.ac.nz>, > > [ ... re " Why would you write > an upper bound of 0.3 on a list if you don't expect that to be included > in the result? " ] > >> Because upper bounds are *UPPER BOUNDS* and are NOT as a rule included >> in the result. If you write [0,2..9] you >> - DO expect 0 in the result >> - DON'T expect 9 in the result >> - would be outraged if 10 were in the result. > > Pardon the questions from the gallery, but ... I can sure see that > 0.3 shouldn't be included in the result by overshooting the limit > (i.e., 0.30000000000000004), and the above expectations about > [0,2..9] are obvious enough, but now I have to ask about [0,2..8] - > would you not expect 8 in the result? Or is it not an upper bound?
Quoting the Wikipedia: In mathematics, especially in order theory, an upper bound of a subset S of some partially ordered set (P, ≤) is an element of P which is greater than or equal to every element of S. ^^^^^^^^^^^ In the case of integers, where is the overshoot? I expect [L,M..U] to be the collection of all x such that L <= x <= U and x-L is n*(M-L) for some n, if M >= L, or the collection of all x such that U <= x <= L and x-L is n*(M-L) for some n, if M <= L. I don't say that's what Haskell promises. What I say is that that's what I _expect_. On the rare occasions when I've used REAL DO, getting close to the stated end point has been unimportant; not going outside the stated bounds critically important. In the case of [0,2..8], 0 <= 8 <= 8 and 8-0 is 4*(2-0), so 8 should be there. [0,1/10..3/10] :: [Ratio Int] includes 3/10 as it should; 3/10 <= 3/10 so that's fine too. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe