Error: remember tables are not supported in evalhf

The remember table of a function provides a way to store specific values of the function for later use. Thus e.g. after defining a function

> f:= proc(x) x^2+1 end:

you can enter a value into the remember table by an assignment with a function call on the left side:

> f(1):= 4:

Another way to produce a remember table is to define the function with option remember . This will automatically enter values in the remember table each time the function is executed.

Whenever the function is called, the remember table is searched for the values of the parameters. If an entry with these parameters is found, the body of the function is not executed, but the remembered value is returned instead.

> f(1);

                                    4

However, this mechanism does not work if the function is called in the evalhf environment, and any attempt to call a function (other than one of the built-in ones that are handled directly) that has a remember table will result in this error.

> evalhf(f(2));

Error, remember tables are not supported in evalhf

The Maple Advisor Database function disremember (in its two-parameter form) can be used to produce a version of a function with an empty remember table, and remove the option remember if present. Note that forget also deletes a remember table, but acts on the original function; disremember returns a modified copy of the function, leaving the original unchanged.

> fh:= disremember(f,true);

                     fh := proc(x) x^2 + 1 end proc

> evalhf(fh(1));

                                   2.

> f(1);

                                    4

See also: disremember , evalhf , evalhf[function] , forget , procedure , remember

Maple Advisor Database R. Israel, 2000