小编use*_*245的帖子

Haskell - 无法构造无限类型

我正在关注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
推荐指数
1
解决办法
420
查看次数

标签 统计

haskell ×1