Число попадает в интервал в Clojure? - программирование

Число попадает в интервал в Clojure?

Есть ли лучший способ, чем следующее:

(defn in-interval?
  "Returns a predicate that tests if its argument falls in
  the inclusive interval [a, b]."
  [a b]
  (fn [x] (and (>= x a) (<= x b))))

При использовании:

((in-interval? 5 8) 5.5) ; true
((in-interval? 5 8) 9)   ; false

Я не хочу использовать range, например, потому что это создает ленивую последовательность.

4b9b3361

Ответ 1

Есть ли лучший способ, чем следующее:

Да.

(<= 5 8 8.5)

Он работает с любым количеством аргументов и проверяет, упорядочены ли они. С тремя аргументами это то, что вы ищете.