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=0 is right; you miss the initial "0". True. The e>=0 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. -- 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
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
participants (2)
-
Dylan Thurston -
Simon Peyton-Jones