Числа в scheme могут быть целыми(integer; например, 42), рациональными (rational; например, 22/7), вещественными (real; например 3.1416) или комплексными (complex; например 2+3i). Целые числа являются рациональными, те в свою очередь вещественными, а вещественные - комплексными. Существуют проверочные функции для каждого из типов.
(number? 42) => #t (number? #t) => #f (complex? 2+3i) => #t (real? 2+3i) => #f (real? 3.1416) => #t (real? 22/7) => #t (real? 42) => #t (rational? 2+3i) => #f (rational? 3.1416) => #t (rational? 22/7) => #t (integer? 22/7) => #f (integer? 42) => #t
Целые числа не обязательно использовать в десятичной системе счисления, они могут быть заданы как двоичные числа с помощью префикса #b. То есть, #b1100 это число 12. Восьмеричный префикс - #o, а шестнадцатиричный - #x (опциональный префикс для десятичных чисел - #d).
Числа могут быть проверены на равность с помощью многофункциональной проверочной функции eqv?
(eqv? 42 42) => #t (eqv? 42 #f) => #f (eqv? 42 42.0) => #f
Однако, если вы знаете, что аргументы точно являются числами, то специальная функция = подойдет лучше.
(= 42 42) => #t (= 42 #f) -->ERROR!!! (= 42 42.0) => #t<code> Другие операторы сравнения также присутствуют: <, <=, >, >=. <code scheme> (< 3 2) => #f (>= 4.5 3) => #t
Арифметические процедуры +, -, *, /, expt (возведение в степень) ведут себя привычно:
(+ 1 2 3) => 6 (- 5.3 2) => 3.3 (- 5 2 1) => 2 (* 1 2 3) => 6 (/ 6 3) => 2 (/ 22 7) => 22/7 (expt 2 3) => 8 (expt 4 1/2) => 2.0
Процедуры - и / при передаче одного аргумента возвращают отрицательное значение и дробь соответственно:
(- 4) => -4 (/ 4) => 1/4
Процедуры max и min возвращают максимально и минимальное число из всех переданных ему аргументов. Количество аргументов не ограничено.
(max 1 3 4 2 3) => 4 (min 1 3 4 2 3) => 1
Процедура abs возвращает абсолютное значение его аргумента.
(abs 3) => 3 (abs -4) => 4
Это лишь верхушка айсберга. Scheme предоставляет широкие возможности для работы с арифметическими и тригонометрическими задачами. Для пример, atan, exp и sqrt возвращают арктангенс, натуральный антилогарифм и квадратный корень соответственно.
← Назад | Оглавление | Вперед →