**Packages**- text

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

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