
On Mon, Sep 09, 2013 at 01:34:24PM -0400, Mihai Maruseac wrote:
On Mon, Sep 9, 2013 at 1:26 PM, Bryan Vicknair
wrote: Deep in a WAI web app, I have a function that converts a String from a web form like "0.12" to an Int 12. Converting "0.12" to the Float 0.12 is working. However, converting the Float 0.12 to the Int 12 does not work as expected unless I use the trace function.
Not answering your question but can't you read . drop 1 . dropWhile (/= '.') $ "0.12" ?
That would work for the specific input of "0.xyz", but in general, the input string may encode a float with an arbitrary number of digits on both sides of the decimal. In reality, the range is probaby from 0.10 to 1.99, so I considered writing a parser for just that range, and I may still, but this behavior is so surprising to me that I feel like I need to understand it.