私はまだClojureでnoobです。大学の銀行取引シナリオに関する問題を解決しようとしています。Clojure:銀行取引の例を参考にしてください。
だから問題は非常に簡単です、私はクレジット、デビットとお金のソリューションを開発する必要があります。
私はここに停止:
(def account
(ref 100))
(defn credit [account amount]
"Credit"
(dosync
(alter account + amount)))
(defn debit [account amount]
"Debit"
(dosync
(if (> amount (balance account))
(throw (Exception. "Insuficient Funds"))
(alter account - amount))))
(defn transfer [from to amount]
"Transfer"
(dosync
(if (<= amount (balance from))
(do
(Thread/sleep 10)
(debit from amount)
(credit to amount))
(throw
(Exception. "Insuficient Funds")))))
を私は理解しにくいと上記のコードにその何も作業していないと思います。
私のような上記の各機能でメモリに口座番号、取引の説明、データ量およびストレージを追加する必要があります
(defn credit [account description data amount]
"Credit"
(dosync
(alter account + amount)))
私はハッシュマップ、ベクター、および他のものにしようとしたが、のdidnています仕事はありません。また、私はこの本でこの解決策を見つけようとしています:Clojure Programming O'Reilly、しかしまだ実装するのは難しいです。
ありがとうございます。詳細が必要な場合はお知らせください。
? – jmargolisvt
各ファンクションに他の「パラメータ」を追加する必要があります。上の質問を編集しましたが、それは明確ですか? – junis087678
現在、あなたの 'credit'関数は単一の値を生成します。一連の値を生成しますか? '(クレジットアカウント20)'は '' 120 "deposit"タイムスタンプ "のようなものを生成するでしょうか? 'assoc-in'と一緒に仕事をしたことがありますか? 「データ」とは何でしょうか? – jmargolisvt