divide : .
total
, , .
, .
, Clojure, nil, , .
, Haskell, Data.Either , .
Haskell. , , . -, must-divide, .
Clojure nil - , , , . , divide, , :
(divide x y :on-error (throw ...))
(divide x y :on-error default-value)
... :
(or (maybe-divide x y) (throw ...))
(or (maybe-divide x y) default-value)
...
(defn maybe-divide [dividend divisor]
(and (not (zero? divisor))
(or (not= Integer/MIN_VALUE dividend)
(not= -1 divisor))
(/ dividend divisor)))
: .
, , divide , , (, - , , - null). Clojure Haskell . , .