Подтвердить что ты не робот

Абсолютное значение числа в Clojure

Как можно вычислить абсолютный номер значения в Clojure?

(abs  1) => 1
(abs -1) => 1
(abs  0) => 0
4b9b3361

Ответ 1

Для double, float, long и int вы можете использовать метод java.lang.Math abs (Math/abs -1)

Позаботьтесь, чтобы он не работал для десятичных знаков, отношений, bigint (eger) и других Clojure числовых типов. Официальная Clojure вкладка математическая библиотека, которая пытается гарантировать правильную работу со всеми этими clojure.math.numeric-tower

Ответ 2

вы всегда можете сделать

(defn abs [n] (max n (- n)))

Ответ 3

Устаревший clojure.contrib.math предоставляет abs.

Источник:

(defn abs "(abs n) is the absolute value of n" [n]
  (cond
   (not (number? n)) (throw (IllegalArgumentException.
                             "abs requires a number"))
   (neg? n) (- n)
   :else n))

Как отмечает @NielsK в комментариях, clojure.math.numeric-tower является проектом-преемником.