Введение в Автолисп | страница 8
Поскольку Автолисп всегда проверяет, является ли первый элемент выражения функцией, то выражение типа
(setq pt1 (3.0 4.5))
не будет принято; Автолисп выдаст сообщение об ошибке (в данном случае bad function, т.е., неверная функция), так как численный параметр 3.0 представляет собой вещественное число, а не функцию.
2. МАТЕМАТИКА В АВТОЛИСПЕ
2.1. Функции обработки чисел
Как уже упоминалось, Автолисп хорошо взаимодействует с базами данных, частным случаем которых являются файлы, создаваемые в результате выполнения программ, написанных с использованием операторных языков. Поэтому во многих случаях целесообразно сложные расчеты производить именно таким образом, оставляя Автолиспу лишь те операции, которые непосредственно связаны с созданием графических примитивов.
Структура математического выражения определяется функциональной природой Автолиспа, в соответствии с которой сначала необходимо определить функцию, а затем обрабатываемые параметры, даже если выражение является чисто арифметическим. В этом основное отличие Автолиспа от операторных языков. Строка в Фортране
C=A+B
или в Паскале
c:=a+b
в Автолиспе выглядит как
(setq с (+ a b)).
Сказанное относится и ко всем остальным операциям. Ниже приводится перечень наиболее употребительных функций.
(+ число число ...). Функция возвращает сумму всех чисел. Числа могут быть как целыми, так и вещественными. Сумма целых чисел есть целое число. Если среди чисел есть хотя бы одно вещественное, результат - вещественное число. Например:
(+ 3 5) возвращает 8,
(+ 1 2 3 4.5) возвращает 10.5,
(+ 1 2.0 3 4 5) возвращает 15.0.
(- число [число] ...). Функция вычитает второе число из первого и возвращает результат. Если чисел несколько, то возвращается результат последовательного вычитания всех последующих чисел из первого. Если число одно, его знак меняется на обратный. Примеры:
(- 5 3) возвращает 2,
(- 18 4.5 6 2) возвращает 5.5,
(- 6) возвращает -6.
(* число [число] ...). Функция возвращает произведение всего рядя чисел. Если введено одно число, возвращается результат его умножения на единицу. Примеры:
(* 5 3) возвращает 15,
(* 2 3.5 4 6) возвращает 168.0,
(* 3) возвращает 3.
(/ число [число] ...). Функция возвращает результат деления первого числа на произведение всех последующих. Единственное введенное число делится на единицу. Примеры:
(/ 8 5) возвращает 1.6,
(/ 720 3 5 2) возвращает 24,
(/ 4) возвращает 4.
(1+ число) возвращает число, увеличенное на единицу,