Числові функції.
Числові функції виконують основні математичні операції над цілими та дробовими числами. Користувач може обрати для роботи точну або наближену раціональну арифметику. Для точної раціональної арифметики розмір цілих чисел, чисельників та знаменників обмежений приблизно до 25000 десяткових знаків.
Примітивними числовими функціями є додавання, віднімання, множення та ділення. В мові програмування Лісп вони є n-арними, тобто кількість їхніх аргументів необмежена. Синтаксис числових функцій наступний:
1. (+ num1 num2 ... numM) 3. (* num1 num2 ... numM)
2. ( - num1 num2 ... numM) 4. (/ num1 num2 ... numM)
Функція додавання повертає суму своїх аргументів. Функція віднімання повертає різницю першого аргумента та суми всіх інших аргументів. Функція множення повертає добуток своїх аргументів. Функція ділення повертає частку від ділення першого аргумента та добутку інших аргументів.
$ (+ 2 4 6 7)$ (- 20 3 5 6)$ (* 2 4 6)$ (/ 24 2 2 3)
196482
Функції збільшення та зменшення мають наступний синтаксичний вигляд:
1. (ADD1 n). Повертає значення, яке на одиницю більше за аргумент.
2. (SUB1 n). Повертає значення, яке на одиницю менше за аргумент.
3. (INCQ sym n) Збільшує значення символа sym на число n.
4. (DECQ sym n) Зменшує значення символа sym на число n.
Якщо функцію додавання (віднімання) одиниці запустити без аргументів, то виникне переривання по помилці: недостатня кількість аргументів. Якщо у функцію INCQ або DECQ передати один аргумент - символ, то збільшення (зменшення) значення символа відбудеться на одиницю. Окрім того, що функції INCQ та DECQ повертають результат арифметичної дії, значення символів, які передаються до них як аргументи, змінюється.
$ (ADD1 6)$ (SUB1 10)
79
$ (SETQ S 10)$ (INCQ S 14)$ (DECQ S 4)
102430
Функції MIN та MAX повертають символ з відповідно мінімальним (максимальним) значенням.
1. (MIN n1 n2 ... nM).$ (MIN 12 3 45 67)$ (MAX 1 2 5 3)
2. (MAX n1 n2 ... nM).35
Числові вирази в Ліспі записуються в префіксній формі. Вираз 3*5+5*7 для обчислення треба подати у вигляді (+ (* 3 5) (* 5 7)), вираз (3+6)*7 — у вигляді (* (+ 3 6) 7).