9.4.5 Using strings as commands
The expr command will let you use a string as a
command. Given a string that expresses a valid command, expr
will convert the string to the command and evaluate it.
For example, if you enter
expr("c := 1")
then the variable c will be set to 1.
Similarly, if you enter
a := "ifactor(54)"
then
expr(a)
will return
2 * 3^3
which is the same thing as entering ifactor(54) directly.
You can also use expr to convert a string to a number.
If a string is simply a number enclosed by quotation marks, then
expr will return the number. For example,
expr("123")
will return
123
In particular, the following strings will be converted to the
appropriate number.
-
A string consisting of the digits 0 through 9 which doesn’t start
with 0 will be converted to an integer. For example,
expr("2133")
will return
2133
- A string consisting of the digits 0 through 9 which contains a
single decimal point will be converted to a decimal.
For example,
expr("123.4")
will return
123.4
- A string consisting of the digits 0 through 9, possibly containing a
single decimal point, followed by e and then more digits 0
through 9, will be read as a decimal in exponential notation.
For example,
expr("1.23e4")
will return
12300.0
- A string consisting of the digits 0 through 7 which starts
with 0 will be read as an integer base 8. For example,
expr("0176")
will return
126
since 176 base 8 equals 126 base 10. - A string starting with 0x followed by digits 0 through 9
and letters a through f will be read as an integer
base 16. For example,
expr("0x2a3f")
will return
10815
since 2a3f base 16 equals 10815 base 10. - A string starting with 0b followed by digits 0 and 1 will
be read as a binary integer. For example,
expr("0b1101")
will return
13
since 1101 base 2 equals 13 base 10.