wykonuje wyrażenie
Przykład:
(eval (+ 3 1) zwraca wartość 4
Dzięki połączeniu z funkcją (read) można wykonywać bardzo złożone operacje.
Można np opracować kalkulator, który będzie interpretował działania wpisane tekstowo
np:
(setq operand (read "+"))
(eval (list operand 22 33 4))
zwóci wartość 59
natomiast
(setq operand (read "max"))
(eval (list operand 22 33 4))
zwróci 33
W analogiczny sposób można zrobić np wczytywanie konfiguracji programu z pliku tekstowego ini.
ćwiczenie do samodzielnego wykonania: Jak miałby wyglądać zapis LISPowy interpretujący następujące wyrażenie:
( setq wyrazenie "42+58")