我正在尝试在Haskell中编写一个简单的终端游戏
我有一个功能:
moveDirection :: Direction -> Position -> Position
应该移动玩家。玩家看起来像这样:
data Player = Player String Position Hp
所以我想将moveDirection
函数应用于Player
。我可以轻松地写一个 lift 函数(我不知道如何调用这种类型的函数):
movePlayer :: (Position -> Position) -> Player -> Player
但是,每次我想对数据结构的某些部分采取行动时,我已经看到自己这么做了很多次。 有没有更简单的方法来做到这一点?一些常见的习语?