前几天我只是在 Clojure repl 中玩,我发现了这个。
user=> (/ 1/2)
2N
所以我尝试了这个:
user=> (type (/ 1/2))
clojure.lang.BigInt
有人知道这是怎么回事吗?
最佳答案
1/2 创建一个 Ratio
并且 /
函数最终调用 (clojure.lang.Numbers/divide 1 1/2)
。如果您查看该定义,它最终会调用 (clojure.lang.Numbers$RatioOps/divide 1 1/2)
。这会将 1L
提升为比率,执行比率除法,然后将 2/1
的结果简化为 BigInt
2。
关于clojure - 为什么 Clojure 中的 (/1/2) 等于 2N?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35657314/