Самоучитель Clojure Часть 2. Четыре арифметические операции


Ссылка

https://clojure.org/guides/repl/basic_usage

Первая половина страницы о базовом использовании формул Clojure.


Численные расчеты

Характеристика четырех арифметических операций в clojure.

https://clojure.org/guides/repl/basic_usage#_evaluating_clojure_expressions

Четыре арифметические операции +, -, * , / сильно отличаются от Java и JS

В примере с добавлением.

( + номер A номер B номер C номер D … )

в виде

((( число A + число B ) + число C ) + число D …)

который представляет собой расчет в форме

https://alraku.com/calculation/2454/

Возвращаемое значение — это число, полученное путем деления первого аргумента на остальные аргументы.

Для этого вида вычислений используется тот же метод вычисления, что и в Lisp.

https://github.com/clojure/clojure/blob/clojure-1.10.1/src/clj/clojure/core.clj#L984

Обратите внимание, что, хотя он кажется арифметическим оператором, таким как JS
как определено в defn, если вы посмотрите на исходный код.
В действительности это функция, которая принимает аргументы переменной длины


Одиночный цифровой выход

user=> (+ 1)
1
Войдите в полноэкранный режим Выход из полноэкранного режима

+, чтобы объявить, что добавление должно быть рассчитано, и
Передайте числовое значение с открытым пробелом.

( + -4 )
-4
Войдите в полноэкранный режим Выход из полноэкранного режима

Вы также можете передать отрицательное число.

( + )
0
Войдите в полноэкранный режим Выход из полноэкранного режима

Ошибка не возникает, если для сложения или умножения не передано числовое значение.
Вычитание и деление приводят к ошибке.


Вывод, который приводит к ошибке

( 1 )
Войдите в полноэкранный режим Выход из полноэкранного режима

Только числовые значения являются ошибкой. Требуется декларация численного расчета.

( +1 )
Войдите в полноэкранный режим Выход из полноэкранного режима

Отсутствие пробела между объявлением сложения и числовым значением приводит к ошибке.


Сложение — (((A+B)+C)+D)

( + 1 2 3)
6
Войдите в полноэкранный режим Выход из полноэкранного режима

Если вы увеличиваете числа, то все они суммируются.

Но внутренне ( 1 + 2 ) + 3 ) = 6.


Вычитание — (((A-B)-C)-D)

Сделать ( 1 — 2 ) — 3

( - 1 2 3)
-4
Войдите в полноэкранный режим Выход из полноэкранного режима

-1 -2 -3 = -6, или

( - 1 2)
-1
Войдите в полноэкранный режим Выход из полноэкранного режима

Рассчитывайте по порядку.

Сделать -1 -2 -3

( - -1 2 3 )
-6
Войдите в полноэкранный режим Выход из полноэкранного режима

Если только первый аргумент -n, то можно вычитать все.

( - 1 - 2 )
Execution error (ClassCastException)
at user/eval5 (REPL:1).
Войдите в полноэкранный режим Выход из полноэкранного режима

Ошибка возникает, если между минусом и единицей есть пробел.

Такие вычисления, как 1-1+2-2, не могут быть выполнены за один раз.


Умножение — ( A x B ) x C )

( * 2 3 )
6
Войдите в полноэкранный режим Выход из полноэкранного режима

2 x 3 = 6

( * 2 3 3 )
18
Войдите в полноэкранный режим Выход из полноэкранного режима

( 2 x 3 ) x 3 ) = 18

Войдите в полноэкранный режим


Деление — ( A ÷ B ) ÷ C )

( / 2 3 )
2/3
Войдите в полноэкранный режим Выход из полноэкранного режима

2 ÷ 3 = 2/3

( / 2 3 3)
2/9
Войдите в полноэкранный режим Выход из полноэкранного режима

( A ÷ B ) ÷ C ) = 2/9

Процесс деления на квази.

Логика та же, что и при вычитании.

Оцените статью
Procodings.ru
Добавить комментарий