【发布时间】:2011-06-30 17:35:48
【问题描述】:
如何在 clojure 中求幂? 现在我只需要整数幂,但问题也适用于分数。
【问题讨论】:
-
作为一个不了解 clojure 但倾向于喜欢它的人(喜欢 lisps、函数式编程并拥有许多方便的库),我很失望这个简单的问题这么多的答案——或者说它必须被问到。我原以为求幂只是提供的基本功能之一,而无需做任何特别的事情。不过,我很高兴有人问。
-
嗯,是的,它的某些版本可能应该在核心中......但我认为许多答案仍然是一个好兆头。 “实现的多条路径”似乎是没有提供很多这些东西的原因——为了提高效率,用户应该知道他们正在使用的功能的细节。例如(正如所选答案中所指出的那样)某些方式可能会破坏堆栈,而其他方式则不太可能这样做。也许有些是懒惰的,有些是急切的……所有细节都需要在 Clojure 中引起注意,这就是为什么我觉得由于哲学原因,大多数非平凡的库都没有提供
-
我认为核心中不仅有 exp 函数的原因是因为 clojure 的数字塔因效率原因而严重损坏。所以你可以用求幂来表示各种不同的东西。 (exp 2 (exp 2 200)) 应该是什么?一个错误或一个巨大的整数,需要一个年龄来计算?如果您只想要通常的浮点 exp,那么 Java 是内置的。如果您想要一种语言,其中数字尽最大努力表现得像实数,并降低成本,请使用方案而不是 clojure。