我正在关注Manning Haskell的书,以构建与lamdas战斗的机器人的功能:
-- robot has 3 properties: name/attack/hp
robot (name,attack,hp) = \message -> message (name,attack,hp)
-- getters
name (n,_,_) = n
attack (_,a,_) = a
hp (_,_,hp) = hp
getName aRobot = aRobot name
getAttack aRobot = aRobot attack
getHP aRobot = aRobot hp
-- setters
setName aRobot newName = aRobot (\(n,a,h) -> robot (newName,a,h))
setAttack aRobot newAttack = aRobot (\(n,a,h) -> robot (n,newAttack,h))
setHP aRobot newHP = aRobot (\(n,a,h) -> robot (n,a,newHP))
printRobot aRobot = aRobot (\(n,a,h) -> n …Run Code Online (Sandbox Code Playgroud) haskell ×1