【发布时间】:2015-05-22 03:16:52
【问题描述】:
我尝试使用相同的算法运行两个阶乘函数,一个在 Scala 中,另一个在 Clojure 中:
// Scala:
def factorial(n:Int) = (1 to n).foldLeft(1: BigInt)(_*_)
--
;; Clojure:
(defn factorial [x]
(reduce * (range 1N (inc x))))
我第一次将函数输入到 REPL 时,Clojure 会评估(函数定义,不计算阶乘),没有任何明显的延迟;而 scala 只是暂停了一小会儿。 (虽然非常非常短,但仍然很明显。)
当我应用函数计算阶乘时,两者都很快返回结果。
我想对 REPL 有一个基本的了解。这两个REPL有什么区别吗? Scala REPL 是真正的 REPL 吗?
【问题讨论】:
标签: scala clojure read-eval-print-loop