Clojure 1.3有哪些重大变化?

21

我一直在苦恼如何跟上1.3版本中变化的清单,尤其是那些需要我修改代码的变化。

  • 哪些内容发生了变化,
  • 即将发生什么变化,
  • 我可以在哪里获取最新的这些变化清单?

6
哇!第一千个Clojure问题! - Arthur Ulfeldt
3
请访问http://github.com/clojure/clojure/blob/master/changes.txt以获取最新更新。 - MayDaniel
1
这样的问题应该设为社区维基吗? - Arthur Ulfeldt
2
请查看以下链接,其中包含Clojure编程语言的更新日志:https://github.com/clojure/clojure/blob/master/changes.md - karmakaze
2个回答

7
日期的重大变更:
  • 数学运算不再升级为大数字。

  • 数学运算不再将结果缩小到可以容纳它们的最小类型。

  • 变量不再默认为动态绑定。需要时添加 ^:dynamic


6

还有其他一些数字方面的更改:

  • 现在有一个新的BigIntegers字面值:5N,表示为BigInteger的5。
  • 相等性规则已经更改(可能是由于Alex提到的变化引起的):
    • (= 2 2.0) => false,但(== 2 2.0) => true
    • (= 2 2M) => false,但(== 2 2M) => true
    • (= 2.0 2M) => false,但(== 2.0 2M) => true
    • 并且为了清晰起见:
      • (= 2 2N) => true
      • (= 2 4/2) => true
    • 您通常可以假设需要使用==来比较浮点数的相等性(这仍然可能是一个不太可靠的命题)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接