Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 备忘录不';fibonacci示例不适用_Clojure - Fatal编程技术网

Clojure 备忘录不';fibonacci示例不适用

Clojure 备忘录不';fibonacci示例不适用,clojure,Clojure,这是来自的示例代码,但当我在浏览器上运行它时,时间一点也没有改变。我想知道为什么会这样? 我不知道您使用的是基于浏览器的REPL,但左边的一栏显示的是函数调用的结果,而不是时间,这就是两个值相同的原因。两个函数计算相同的斐波那契数 time宏用于包装任意表达式,而无需更改代码的结构,因此它返回包装表达式返回的相同值,并将执行时间打印到标准输出。本质上,表达式(时间(m-fib 30))扩展为 (time (fib 30)) ;; "Elapsed time: 8179.04028 msecs"

这是来自的示例代码,但当我在浏览器上运行它时,时间一点也没有改变。我想知道为什么会这样?

我不知道您使用的是基于浏览器的REPL,但左边的一栏显示的是函数调用的结果,而不是时间,这就是两个值相同的原因。两个函数计算相同的斐波那契数

time
宏用于包装任意表达式,而无需更改代码的结构,因此它返回包装表达式返回的相同值,并将执行时间打印到标准输出。本质上,表达式
(时间(m-fib 30))
扩展为

(time (fib 30))
;; "Elapsed time: 8179.04028 msecs"

;; Fibonacci number with recursion and memoize.
(def m-fib
  (memoize (fn [n]
             (condp = n
               0 1
               1 1
               (+ (m-fib (dec n)) (m-fib (- n 2)))))))

(time (m-fib 30))
;; "Elapsed time: 1.282557 msecs"

因此,要查看REPL中的执行时间,您需要查看表达式的打印输出。

我不知道您使用的是基于浏览器的REPL,但左边的一栏显示的是函数调用的结果,而不是时间,这就是两个值相同的原因。两个函数计算相同的斐波那契数

time
宏用于包装任意表达式,而无需更改代码的结构,因此它返回包装表达式返回的相同值,并将执行时间打印到标准输出。本质上,表达式
(时间(m-fib 30))
扩展为

(time (fib 30))
;; "Elapsed time: 8179.04028 msecs"

;; Fibonacci number with recursion and memoize.
(def m-fib
  (memoize (fn [n]
             (condp = n
               0 1
               1 1
               (+ (m-fib (dec n)) (m-fib (- n 2)))))))

(time (m-fib 30))
;; "Elapsed time: 1.282557 msecs"

因此,要查看REPL中的执行时间,您需要查看表达式的打印输出。

在浏览器中?屏幕截图显示了两个不同的时间注意
time
结果是计算表达式的值,而不是时间。图片中的时间与纯文本代码中的时间完全匹配。你的意思是发布一张浏览时间的图片吗?在苹果酒中,在emacs上以及在a和
时间上都可以尝试。您的平台、系统、设置是什么?在浏览器中?屏幕截图显示了两个不同的时间注意,
时间
结果是计算表达式的值,而不是时间。图片中的时间与纯文本代码中的时间完全匹配。你的意思是发布一张浏览时间的图片吗?在苹果酒中,在emacs上以及在a和
时间上都可以尝试。您的平台、系统和设置是什么?