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")