[Haskell-cafe] ANN: HalfInteger-1.1.1
Andrew Coppin
andrewcoppin at btinternet.com
Sat Jul 4 13:47:36 EDT 2009
Alexander Dunlap wrote:
> Couple of suggestions:
>
> - You should put an (Integer i) => constraint on the halve function so
> that it becomes impossible to create invalid HalfIntegers.
>
Right. Currently you can *make* such a HalfInteger. You just won't be
able to *do* anything with it afterwards. It would probably be more
sensible to just add a constraint there.
> - The documentation for toHalfInteger is truncated. Also, why can't
> you make the rounding more predictable?
>
...wow. OK, I'm looking at the source, and it seems I must have got
distracted at that moment or something, because I just 100% didn't
actually finish writing the documentation! o_O That's pretty special. ;-)
As I *should* have written, the rounding for something like
toHalfInteger 0.25 is kind of unpredictable; but if you do toHalfInteger
0.5, the result is *guaranteed* to be exact. All the functions are
carefully tuned to work correctly on things which really are half
integers, and to give plausible results otherwise. Just don't let your
life depend on 0.25 being mapped to exactly a half or to exactly zero...
> Nice work!
>
Heh, thanks.
More information about the Haskell-Cafe
mailing list