Подтвердить что ты не робот

Каковы изменения в clojure 1.3?

У меня возникли проблемы с перечнем изменений в 1.3 и, самое главное, изменениями, которые требуют от меня изменения моего кода.

  • Что изменилось,
  • Что изменится,
  • Где я могу получить последние списки?
4b9b3361

Ответ 1

Нарушение изменений на сегодняшний день:

  • Math ops больше не продвигаются в bignums.

  • Math ops больше не сужают результат до наименьшего типа, который может их удерживать.

  • Vars больше не будет по умолчанию динамически привязываться. При необходимости добавьте ^:dynamic.

Ответ 2

Несколько других числовых изменений:

  • Существует новый литерал для BigIntegers: 5N, который является 5 как BigInteger.
  • Правила равенства изменились (возможно, возникшие в результате изменений, которые Алекс упоминает?):
    • (= 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
    • Обычно вы можете предположить, что вам понадобится == для сравнения чисел с плавающей запятой для равенства (что, вероятно, является шатким предложением).