如何增加属性?我创建了一个用户类型
data user = User{ username :: String, passwort :: String, points :: Int } user = user {username ="Test", passwort="test123", points=100 }
我想将点数增加10,所以我尝试做类似其他编程语言的操作 points += 10
userplus10 = user{points = points +10}
(顺便说一句,这不起作用)创建一个新用户,但在点上具有另一个值。
它确实有效,但是您需要指定要增加的点。user
s,对不对?
userplus10 = user{points = points user + 10}
不过,做这种事情的更好的方法是镜片。
{-# LANGUAGE TemplateHaskell, Rank2Types #-} import Control.Lens data User = User { _username :: String, , _passwort :: String, , _points :: Int } makeLenses ''User user = user {username ="Test", passwort="test123", points=100} userPlus10 = user & points +~ 10