Réponse:   La traduction naïve donne:
    function quatre (n : integer) : integer;
    begin
       quatre := ((n * n) * (n * n)) * ((n * n) * (n * n))
    end;
L'argument de carré (par exemple (n*n) mais aussi carré (n*n)) est évalué deux fois (au toral (n*n) est évalué quatre fois) ce qui est inefficace.