Лисп/Математика

Материал из Викиучебника — открытых книг для открытого мира
Перейти к: навигация, поиск

В любом случае мы хотим, чтобы машина что-то делала за нас и поэтому ей надо сообщить, что же она должна делать - это и есть цель программированния.

— Дэвид Баррон.

Долгое время Лисп использовался только для решения задач искусственного интеллекта. Из-за этого появился миф, будто бы вычисления в Лиспе - довольно неуклюжая вещь. На деле Лисп оказался очень гибким языком во всех отношениях.

Для начала разберёмся со знаками арифметических действий:

+ -плюс; — -минус; * -умножение; / -деление.

Затем рассмотрим знаки логических действий:

< - меньше; > - больше; = - равно; AND - логическое «И»; OR - логическое «ИЛИ»; NOT - логическое «НЕ».

В языке Лисп как для вызова функции, так и для записи выражений принята единообразная префиксная форма записи, при которой как имя функции или действия, так и сами аргументы записываются внутри скобок:

(f x), (g x y), (h x (g y z)) и т. д.

Таким же образом записываются арифметические действия:

(+ 1 4) = 1+4, (- 2 3) = 2-3, (* 3 2) = 3*2, (/ 4 1) = 4/1.

Сначала этот новый способ записи покажется затруднительным, но он весьма быстро станет привычным и даже понравится по мере того, как станут очевидны его преимущества. Например, почти полное отсутствие приоритета. Единственное, что нужно помнить, это то, что действия в скобках выполняются в первую очередь («В Алголе 60 семнадцать различных операций, и как-то было остроумно замечено, что если вы найдёте человека, который сможет вам сказать, старшинство какой из операций <= или >= выше, значит, вы нашли человека, написавшего соответствующую часть компилятора» Дэвид Баррон).