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

Материал из Викиучебника

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

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

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

+ -плюс; — -минус; + -умножение; / -деление. Затем рассмотрим знаки логических действий: < -меньше; > -больше; = -равно; 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 семнадцать различных операций, и как-то было остроумно замечено, что если вы найдёте человека, который сможет вам сказать, старшинство какой из операций <= или >= выше, значит, вы нашли человека, написавшего соответствующую часть компилятора» Дэвид Баррон).