Liberty BASIC now has two functions for evaluating BASIC code inside a running program. The eval() function evaluates the code and returns a numeric value, and the eval$() function works the same way but returns a string value. Both will execute the very same code, but the string function converts the result to a string if it isn't already one, and the numeric version of the function converts it to numeric values.

Evaluating to a string

Here we show how to evaluate code to a string, and what happens if you try to evaluate it to be a number.

'Let's evaluate some code that produces a non-numeric result

a$(0) = "zero"

a$(1) = "one"

a$(2) = "two"

code$ = "a$(int("+str$(rnd(1))+"*3))"

print "We will evaluate the code: "; code$

result$ = eval$(code$)

print result$

'Now let's use the eval function, which effectively does a

'val() to the result of the calculation. Converting a non

'numeric string to a numeric value results in zero.

result = eval(code$)

print result

Evaluating to a number

Here's an example of the most common type of code evaluation users will want to do: Numeric computation. Let's just make a short example that asks you to type an expression to evaluate.