有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA双人不能投给clojure。IFn问题

我正在为一个任务编写一个基本的指数函数,我不明白为什么会出现这个错误。这是我的代码:

(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)))

我在最后一行得到了错误信息,我假设它与参数点的double或x有关


共 (1) 个答案

  1. # 1 楼答案

    看起来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