私は関数型プログラミングとClojureを初めて使用するので、大学でのプロジェクトで何をすべきかよくわかりません。プロジェクトは、銀行取引(口座Aから口座Bへの送金)におけるClojureSTMの利点を示す必要があります。だから私はこのように進めることを計画しています:
- 参照のマトリックスなどの初期データを定義する
- 実行するランダム操作を生成します。
[ random-account-source-id(0, N_MAX) , random-account-destination-id(0, N_MAX), random-money (0, 1000) ]
- トランザクションをデータ構造に挿入します
- 次のようなマトリックスへのすべての挿入について、source-idからdestination-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])))))