Clojure 声明函数';作为原子的论据
是否可以将函数的参数声明为原子 比如说,Clojure 声明函数';作为原子的论据,clojure,Clojure,是否可以将函数的参数声明为原子 比如说, (defn make-withdraw [(atom balance)] (fn [amount] (if (>= @balance amount) (do (swap! balance #(- % amount)) @balance) "Insufficient funds") )) 谢谢大家! Clojure是一种动态类型的语言,因此参数是您传递给它的任何内容,在函数中如何使用它才是最重要的 因此,只需
(defn make-withdraw [(atom balance)]
(fn [amount]
(if (>= @balance amount)
(do (swap! balance #(- % amount)) @balance)
"Insufficient funds")
))
谢谢大家! Clojure是一种动态类型的语言,因此参数是您传递给它的任何内容,在函数中如何使用它才是最重要的 因此,只需向函数传递一个原子,您就可以开始:
(make-withdraw (atom 1000))
或者在您的make draw
函数中使用let
创建原子:
(defn make-withdraw
[balance]
(let [state (atom balance)]
(fn [amount]
(if (>= @state amount)
(do (swap! state #(- % amount)) @state)
"Insufficient funds"))))
Clojure是一种动态类型的语言,因此参数是您传递给它的任何内容,在函数中如何使用它才是最重要的 因此,只需向函数传递一个原子,您就可以开始:
(make-withdraw (atom 1000))
或者在您的make draw
函数中使用let
创建原子:
(defn make-withdraw
[balance]
(let [state (atom balance)]
(fn [amount]
(if (>= @state amount)
(do (swap! state #(- % amount)) @state)
"Insufficient funds"))))
Clojure是一种动态类型的语言,因此参数是您传递给它的任何内容,在函数中如何使用它才是最重要的 因此,只需向函数传递一个原子,您就可以开始:
(make-withdraw (atom 1000))
或者在您的make draw
函数中使用let
创建原子:
(defn make-withdraw
[balance]
(let [state (atom balance)]
(fn [amount]
(if (>= @state amount)
(do (swap! state #(- % amount)) @state)
"Insufficient funds"))))
Clojure是一种动态类型的语言,因此参数是您传递给它的任何内容,在函数中如何使用它才是最重要的 因此,只需向函数传递一个原子,您就可以开始:
(make-withdraw (atom 1000))
或者在您的make draw
函数中使用let
创建原子:
(defn make-withdraw
[balance]
(let [state (atom balance)]
(fn [amount]
(if (>= @state amount)
(do (swap! state #(- % amount)) @state)
"Insufficient funds"))))