Problémy s vyhodnocováním - při prvním čtení lze vynechat
Nechť proměnné a, b nemají hodnotu:
> a:='a'; b:='b';
Pak přiřazení
> interval:=a..b; delka:=b-a;
... bude automaticky respektovat hodnoty, kterých proměnné a, b později nabydou:
> a:=1; b:=10;
> interval; delka;
Některé složitější datové stuktury, např. funkce a pole, se automaticky plně nevyhodnocují.
> h:= x -> arctan(x^2);
> a:=array(identity, 1..2,1..2);
Při výstupu se zobrazí pouze jejich jméno, nikoli obsah:
> h, a;
Víc se o nich dovíme po vyhodnocení funkcí eval :
> eval(h); eval(a);
Funkci `eval` potřebujeme také tehdy, chceme-li vytvořit kopie těchto struktur:
> totez:=h;
> kopie:=eval(h);
Na první pohled se zdají být funkce `totez`, `kopie` stejné:
> eval(totez);
> eval(kopie);
... ale `kopie` je (nezávislá) kopie, zatímco `totez` je identická s funkcí h.
To se projeví, předefinujeme-li h - `totez` se změní, `kopie` nikoli:
> h:=sin;
> eval(totez);
> eval(kopie);
> totez(2);
> kopie(2);