<div dir="ltr">To me, the notation makes sense if you think of the binary representation of the number: each hex digit is 4 bits, and the base 2 exponent allows you to move the decimal point by one bit.  I would guess that the exponent is written in base 10, because that's easier for most people to understand, and its bit-pattern representation is not all that important.<div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 28, 2017 at 5:07 PM, Levent Erkok <span dir="ltr"><<a href="mailto:erkokl@gmail.com" target="_blank">erkokl@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Henning:<div><br></div><div>Indeed, the proposal follows the description in p57-58 of <a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf" target="_blank">http://www.open-std.org/jtc1/<wbr>sc22/wg14/www/docs/n1256.pdf</a>, which dates back to 2007. (Some Haskell related deviations do exist, like dropping the final suffix, since Haskell doesn't need it; and requiring digits both before and after the dot.)<br></div><div><br></div><div>I think of the format as precisely representing the value "mantissa x 2^exp"; where the mantissa is written in hexadecimal, and the exponent is left as a regular decimal integer. The discrepancy is rather weird, but I guess it made more sense when the standard was drafted. More importantly, all the other languages (C, Java, Python: <a href="http://www.exploringbinary.com/hexadecimal-floating-point-constants/" target="_blank">http://www.<wbr>exploringbinary.com/<wbr>hexadecimal-floating-point-<wbr>constants/</a>) follow this convention as well; so it would be unfortunate if Haskell diverged.</div><div><br></div><div>For the change in semantics for "reads:" That is indeed unfortunate since we lose backwards compatibility. But it's a very minor one and I would be curious if anyone depended on the existing semantics for any legitimate reason. I personally do not see any issues with it.</div><div><br></div><div>-Levent.</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Tue, Feb 28, 2017 at 11:20 AM, Henning Thielemann <span dir="ltr"><<a href="mailto:lemming@henning-thielemann.de" target="_blank">lemming@henning-thielemann.de</a><wbr>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><span><br>
On Tue, 28 Feb 2017, Iavor Diatchki wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This may affect existing programs---although it doesn't seem very likely.  Here is an example:<br>
<br>
current behavior:<br>
<br>
reads "0x10p10" = [(16.0,"p10")]<br>
<br>
new behavior:<br>
<br>
reads "0x10p10" = [(16384,"")]<br>
</blockquote>
<br>
<br></span>
"p" refers to a power of two and the exponent is written in decimal for a hexadecimal mantissa. Looks pretty confusing to me but it seems that the standard was made somewhen before this proposal.<br></div></div>______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>