Rational +text

rational :: Fractional a => Reader a
text Data.Text.Read
Read a rational number. This function accepts an optional leading sign character, followed by at least one decimal digit. The syntax similar to that accepted by the read function, with the exception that a trailing '.' or 'e' not followed by a number is not consumed. Examples (with behaviour identical to read): > rational "3" == Right (3.0, "") > rational "3.1" == Right (3.1, "") > rational "3e4" == Right (30000.0, "") > rational "3.1e4" == Right (31000.0, "") > rational ".3" == Left "input does not start with a digit" > rational "e3" == Left "input does not start with a digit" Examples of differences from read: > rational "3.foo" == Right (3.0, ".foo") > rational "3e" == Right (3.0, "e")
rational :: Fractional a => Reader a
text Data.Text.Lazy.Read
Read a rational number. This function accepts an optional leading sign character, followed by at least one decimal digit. The syntax similar to that accepted by the read function, with the exception that a trailing '.' or 'e' not followed by a number is not consumed. Examples: > rational "3" == Right (3.0, "") > rational "3.1" == Right (3.1, "") > rational "3e4" == Right (30000.0, "") > rational "3.1e4" == Right (31000.0, "") > rational ".3" == Left "input does not start with a digit" > rational "e3" == Left "input does not start with a digit" Examples of differences from read: > rational "3.foo" == Right (3.0, ".foo") > rational "3e" == Right (3.0, "e")