我正在为一个赋值编码一个基本的指数函数,我无法弄清楚为什么我会收到这个错误。这是我的代码:
(def epsilon 0.000001)
(def exponentialing
(fn [F S T x]
(if
(<= T epsilon)
S
(recur (+ F 1) (+ S T) (* T(/ x F)) x))))
(def exp
(fn [x]
(exponentialing 1.0 0.0 1.0 x)))
我在最后一行收到错误信息,我假设它与参数点中的双打或x有关
答案 0 :(得分:0)
您似乎错过了recur
行中的空格字符。我还将您的功能从def
简化为defn
。此外,您未能在原始版本中调用exp
:
(ns clj.core
(:require [tupelo.core :as t] ))
(t/refer-tupelo)
(def epsilon 0.000001)
(defn exponentialing
[F S T x]
(if
(<= T epsilon)
S
(recur (+ F 1) (+ S T) (* T (/ x F)) x)))
(defn exp
[x]
(exponentialing 1.0 0.0 1.0 x))
(spyx (exp 3))
> lein run
(exp 3) => 20.085536488379084