所以我正在用 Haskell 编写一个游戏,我将玩家的回合表达为一系列与不同回合阶段相关的状态改变函数。最初,这看起来像:
let game' = phase1 game
game'' = phase2 game'
-- etc.
国家单一性的主要候选人,对吧?这导致更优雅:
do
phase1
phase2
-- etc.
但是,似乎我必须更改phase1
, phase2
, et al 以从样板“状态获取”步骤开始:
phase1 = get >>= \game -> -- ...
我希望有一种方法可以将其抽象出来,这样我就可以避免调用者和被调用者的样板文件。我太新了,不知道这种方式是什么(这是我的第一个真正的 Haskell 项目)。有什么建议吗?