Clojure 规范化函数运行时错误
Clojure normalize function runtime error
我写的这段代码给出了错误:
java.lang.Long cannot be cast to clojure.lang.IFn
这意味着我在需要函数的地方使用了一个数字。
我认为这与 clojure.math.numeric-tower 的 expt 函数有关,但我不确定。神秘的错误信息 FTL.
(ns point-normalize.core
(:require [clojure.math.numeric-tower :as math :only (sqrt expt)]))
(defn normalize [x y]
(let [x1 (/ x (math/sqrt ((math/expt x 2)+ (math/expt y 2))))
y1 (/ y (math/sqrt ((math/expt x 2)+ (math/expt y 2))))]
(x1 y1)))
如有任何提示,我们将不胜感激。谢谢。
+ 在错误的位置:
((math/expt x 2)+ (math/expt y 2)))
应该是:
(+ (math/expt x 2) (math/expt y 2)))
y1 也一样。因为你在其他地方有这个正确的它看起来像是一个简单的错字。
虽然在 clojure 代码中看到 )))))))
很正常,但需要再看一眼 ((
的出现。
我写的这段代码给出了错误:
java.lang.Long cannot be cast to clojure.lang.IFn
这意味着我在需要函数的地方使用了一个数字。
我认为这与 clojure.math.numeric-tower 的 expt 函数有关,但我不确定。神秘的错误信息 FTL.
(ns point-normalize.core
(:require [clojure.math.numeric-tower :as math :only (sqrt expt)]))
(defn normalize [x y]
(let [x1 (/ x (math/sqrt ((math/expt x 2)+ (math/expt y 2))))
y1 (/ y (math/sqrt ((math/expt x 2)+ (math/expt y 2))))]
(x1 y1)))
如有任何提示,我们将不胜感激。谢谢。
+ 在错误的位置:
((math/expt x 2)+ (math/expt y 2)))
应该是:
(+ (math/expt x 2) (math/expt y 2)))
y1 也一样。因为你在其他地方有这个正确的它看起来像是一个简单的错字。
虽然在 clojure 代码中看到 )))))))
很正常,但需要再看一眼 ((
的出现。