如何在clojure中编写以下ocaml表达式:
fun x -> (f (x +. dx) -. f x) /. dx
我很简单地尝试了以下表达式,但是引发了异常:
(defn derivative [dx f]
(fn [x]
(/ (- f [(+ x dx)] f [x]) dx)))
((derivative 0.01 (fn [x] (* x x))) 1)
java.lang.ClassCastException:ableitung $ eval5058 $ fn__5059无法强制转换为java.lang.Number Numbers.java:135 clojure.lang.Numbers.minus
答案 0 :(得分:4)
您需要应用与f
相关的(f x y ..)
。您可能也不应该将单个向量参数传递给f
,尽管没有定义它是不可能的:
(defn derivative [dx f]
(fn [x]
(/ (- (f (+ x dx)) (f x)) dx)))