There are a number of ways to affect the way the correct answer is displayed to the student. The interaction between ` eval() `, ` substitute() `, ` reduceConstants `, ` reduceConstantFunctions `.
Note:PGLabs is an efficient way to check code.

```# Context()->flags->set(reduceConstants=>0);
\$f = Compute("sqrt(5^2+6x)");
\$df = \$f->D;
\$dfx = Compute( \$df->eval(x=>"pi") );
displays: 0.453042
```

The correct answer is a number because we used ` eval() ` instead of ` substitute() `.

```Context()->flags->set(reduceConstants=>0);
\$f = Compute("sqrt(5^2+6x)");
\$df = \$f->D;
\$dfx = Compute( \$df->eval(x=>"pi") );
displays: 0.453042
```

Clearly, ` reduceConstants ` has no effect on ` eval() `.

```Context()->flags->set(reduceConstants=>0);
\$f = Compute("sqrt(5^2+6x)");
\$df = \$f->D;
\$dfx = Compute( \$df->substitute(x=>"pi") );
displays:  (6*1/[2*sqrt(25+6*3.14159)])
```

Now, the correct answer is an unreduced Formula since ` substitute() ` was used instead of ` eval() `.

```#Context()->flags->set(reduceConstants=>0);
\$f = Compute("sqrt(5^2+6x)");
\$df = \$f->D;
\$dfx = Compute( \$df->substitute(x=>"pi"));
displays (0.453042)
```

Now the correct answer is still a formula, but the constants have been reduced since ` reduceConstants ` has been set to 0. Surprisingly, sqrt(constant) is also reduced in this case.

To explore this further:

```Context()->flags->set(reduceConstants=>0);
# Context()->flags->set(reduceConstantFunctions=>0);
\$f = Compute("sqrt(x)");
\$df = \$f->D;
\$dfx = Compute( \$df->substitute(x=>"5") );
display  (1/(2*2.23607))
```

The correct answer is a Formula because we used ` substitute() `, but the function ` sqrt(x) ` is simplified.

```Context()->flags->set(reduceConstants=>0);
Context()->flags->set(reduceConstantFunctions=>0);
\$f = Compute("sqrt(x)");
\$df = \$f->D;
\$dfx = Compute( \$df->substitute(x=>"5") );
displays  (1/[2*sqrt(5)])
```

This time the Formula is not simplified because ` reduceConstantFunctions ` has been set to 0.

However:

```Context()->flags->set(reduceConstants=>0);
# Context()->flags->set(reduceConstantFunctions=>0);
\$f = Compute("sqrt(5^2+6x)");
\$df = \$f->D;
\$dfx = Compute( \$df->substitute(x=>"5") );
displays: (6*1/[2*sqrt(25+6*5)])
```

Surprisingly, this function is not reduced even though ` reduceConstantFunctions ` is 1 (the default). This appears to be because the input to the function is complicated. This might be considered a bug.