【发布时间】:2014-07-14 21:21:40
【问题描述】:
我有一个表示为地图的游戏状态和一些更新每个游戏“tic”状态的逻辑。但我无法弄清楚如何以任何理智的方式构造更新函数。
这样构造函数的惯用模式是什么?
这是我想做的一些伪代码:
(defn tic [g] "Return an updated game"
g1 = (update-in g [:day] inc)
g2 = (if (some-cond) (some-update-func g1) g1)
g3 = (update-in g2 [:fu] fu-update)
... many more ...
g-last)
我并不真正关心中间状态,但是使用 -> 宏不起作用(因为有一些条件)。
一个有效的方法是使用一个被重置的本地原子!对于更新函数中的每一行。但这不可能是它应该做的?!
【问题讨论】:
标签: design-patterns clojure functional-programming