# Haskell Report (again)

**Dylan Thurston
**
dpt@math.harvard.edu

*Fri, 20 Jul 2001 12:33:05 -0400*

On Fri, Jul 20, 2001 at 08:35:13AM -0700, Simon Peyton-Jones wrote:
>* | (b) What is the code supposed to do? The code you posted always
*>* | prints a decimal point; I imagine this is intended? Can this be
*>* | documented?
*>* Sigh. The numeric library is entirely inadequately documented.
*>* I suppose that now you have forced me to face up to this fact I shall
*>* have to write some (brief) documentation for at least the exported
*>* functions.
*
I could do it, if you prefer.
>* | (c) I don't think the case e=0 is right; you miss the initial "0".
*>* True. The e>=0 should be e>0, I think.
*
Yes, that should fix it.
>* | (d) "floatToDigits" seems to return an exponent that is off by 1 from
*>* | what I expected at first. This is reasonable, but since the
*>* | function is exported, it should be documented.
*>*
*>* Here's a comment I've just deduced and typed in for floatToDigits.
*>* Does it meet the need?
*>*
*>* -- floatToDigits takes a base and a non-negative RealFloat number,
*>* -- and returns a list of digits and an exponent.
*>* -- In particular, if x>=0, and
*>* -- floatToDigits base x = ([d1,d2,...,dn], e)
*>* -- then
*>* -- (a) n >= 1
*>* -- (b) x = 0.d1d2...dn * (base**e)
*>* -- (c) 0 <= di <= base-1
*
Looks great!
--Dylan