Haskell Report (again)

Simon Peyton-Jones simonpj@microsoft.com
Fri, 20 Jul 2001 08:35:13 -0700


Dylan (sorry for the wrong name)

| (a) Where's the definition of mk0?  (It was in the text you deleted.)

Ah, it should go back.

| (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.

| (c) I don't think the case e=3D0 is right; you miss the initial "0".

True.  The e>=3D0 should be e>0, I think.

| (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.=20
-- In particular, if x>=3D0, and
--	floatToDigits base x =3D ([d1,d2,...,dn], e)
-- then
--	(a) n >=3D 1
--	(b) x =3D 0.d1d2...dn * (base**e)
-- 	(c) 0 <=3D di <=3D base-1