Числа

Числа в 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 возвращают арктангенс, натуральный антилогарифм и квадратный корень соответственно.


Назад | Оглавление | Вперед

 
scheme/chisla.txt · Последние изменения: 2010/04/02 08:03 От kolesvit
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki