【发布时间】:2012-03-03 14:00:22
【问题描述】:
我是函数式编程和 Clojure 的新手,所以我不太确定在大学里为项目做什么。该项目应展示 Clojure STM 在银行交易中的优势(将资金从账户 A 转移到账户 B)。 所以我打算这样进行:
- 定义初始数据,例如 Refs 矩阵或其他更好的东西
- 生成随机操作来执行:
[ random-account-source-id(0, N_MAX) , random-account-destination-id(0, N_MAX), random-money (0, 1000) ] - 将事务插入数据结构中
- 为所有人同步资金从源 ID 到目的地 ID 的转移
矩阵中的插入,例如:
for i=0; i lt N; i++; synchronize: transfer (matrix[i].source,matrix[i].dest,matrix[i].money)
我不确定,那么,也许:
(defn do-all[]
(dosync
(when (pos? N)
(transfer (get matrix [pos 1], get matrix [pos 2], get matrix [pos 3])))))
【问题讨论】:
-
我不知道你的问题是什么。