2014-01-20 4 views

ответ

3

Clojure - это динамически типизированный язык, поэтому параметр - это то, что вы передаете ему, как вы его используете внутри функции.

Так просто передать атом в функцию, и вы готовы отправиться:

(make-withdraw (atom 1000)) 

Или создать атом внутри make-withdraw функции с let:

(defn make-withdraw 
    [balance] 
    (let [state (atom balance)] 
    (fn [amount] 
     (if (>= @state amount) 
     (do (swap! state #(- % amount)) @state) 
     "Insufficient funds")))) 
+0

или макияж снимать! – Hendekagon

Смежные вопросы