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-为什么不';如果这段代码在clojure中不起作用,我是否缺少一些懒惰的评估?_Clojure_Lazy Evaluation_Sicp - Fatal编程技术网

Clojure-为什么不';如果这段代码在clojure中不起作用,我是否缺少一些懒惰的评估?

Clojure-为什么不';如果这段代码在clojure中不起作用,我是否缺少一些懒惰的评估?,clojure,lazy-evaluation,sicp,Clojure,Lazy Evaluation,Sicp,我刚接触clojure,通过SICP学习 我无法从SCIP 1.3.1获得这段代码 我错过了什么 (defn sum [term a next b] (if (> a b) 0 (+ (term a) (sum term (next a) next b)))) (defn sum-cubes-new [a b] ((sum cube a inc b))) 以下是错误消息: java.lang.Integer cannot be cast to clo

我刚接触clojure,通过SICP学习

我无法从SCIP 1.3.1获得这段代码

我错过了什么

(defn sum [term a next b] 
  (if (> a b) 
      0
      (+ (term a) (sum term (next a) next b))))

(defn sum-cubes-new [a b]
  ((sum cube a inc b)))
以下是错误消息:

java.lang.Integer cannot be cast to clojure.lang.IFn
  [Thrown class java.lang.ClassCastException]

Restarts:
 0: [ABORT] Return to SLIME's top level.

Backtrace:
  0: user$sum_cubes_new__2868.invoke(summation.clj:33)
  1: user$eval__2874.invoke(NO_SOURCE_FILE:1)
  2: clojure.lang.Compiler.eval(Compiler.java:4642)
  3: clojure.core$eval__5236.invoke(core.clj:2017)
  4: swank.commands.basic$eval_region__910.invoke(basic.clj:40)
  5: swank.commands.basic$eval_region__910.invoke(basic.clj:31)
  6: swank.commands.basic$eval__930$listener_eval__932.invoke(basic.clj:54)
  7: clojure.lang.Var.invoke(Var.java:359)
  8: user$eval__2871.invoke(NO_SOURCE_FILE)
  9: clojure.lang.Compiler.eval(Compiler.java:4642)
 10: clojure.core$eval__5236.invoke(core.clj:2017)
 11: swank.core$eval_in_emacs_package__458.invoke(core.clj:58)
 12: swank.core$eval_for_emacs__536.invoke(core.clj:126)
 13: clojure.lang.Var.invoke(Var.java:367)
 14: clojure.lang.AFn.applyToHelper(AFn.java:179)
 15: clojure.lang.Var.applyTo(Var.java:476)
 16: clojure.core$apply__4370.invoke(core.clj:436)
 17: swank.core$eval_from_control__461.invoke(core.clj:65)
 18: swank.core$eval_loop__464.invoke(core.clj:70)
 19: swank.core$spawn_repl_thread__598$fn__630$fn__632.invoke(core.clj:179)
 20: clojure.lang.AFn.applyToHelper(AFn.java:171)
 21: clojure.lang.AFn.applyTo(AFn.java:164)
 22: clojure.core$apply__4370.invoke(core.clj:436)
 23: swank.core$spawn_repl_thread__598$fn__630.doInvoke(core.clj:176)
 24: clojure.lang.RestFn.invoke(RestFn.java:402)
 25: clojure.lang.AFn.run(AFn.java:37)
 26: java.lang.Thread.run(Thread.java:637)
(defn sum cubes new[a b]
((和立方a包括b)))


围绕sum调用的额外参数集导致它尝试将结果数字作为函数进行求值

我将您的代码更改为使用标准缩进,因为它使
sum cubes中的错误变得很明显。