clojure API学习(1) 数学运算
附注:本文基于jdk1.6,clojure1.2
数学运算 ????? 让我们通过学习clojure的API来一步步了解它,首先是最简单的数学运算。
加法+??? API中对加法函数的描述是:
clojure.core/+
([] [x] [x y] [x y & more])
? Returns the sum of nums. (+) returns 0.
??? 首先,它位于clojure.core命名空间下,能够接受0到任意数量的参数,如果没有参数,则返回0。下面我们来
实验一下:
user> (macroexpand '(with-precision 10 :rounding HALF_DOWN (/ 1M 3)))(let* [] (clojure.core/push-thread-bindings (clojure.core/hash-map (var clojure.core/*math-context*) (java.math.MathContext. 10 (. java.math.RoundingMode HALF_DOWN)))) (try (/ 1M 3) (finally (clojure.core/pop-thread-bindings))))
??? 可以看到,整个执行过程跟上面描述的是一致的。
?