clojure - 为什么 Clojure 中的 (/1/2) 等于 2N?

标签 clojure division bigint

前几天我只是在 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/

相关文章:

Java/Clojure BouncyCaSTLe 报告 key 大小错误,但 key 大小正确

fft - 如何使用 FFT 将一个非常大的整数从一个基数/基数转换为另一个?

java - 数字与分数相乘

mysql - Mysql查询中的划分

html - 当我将鼠标悬停在 Div 上时,它不会保持展开状态

转换为 big int 时出现 PHP 日期格式问题

javascript int 计算错误

clojure - cli-tool : Avoiding nested if's 配置文件的验证过程

Clojure 斐波那契数

clojure - 在 Clojure core.logic 中,为什么我不能使用线程宏?