更改记录值-haskell

问题描述

我有这个记录:

data Ship = CShip {Planet::String}
    deriving Show
spaceship = CShip {Planet = "alphaCentauriBb"} 

但是我想更改Planet上的String。例如:

Planet = "alphaCentauriCc"

有没有办法做到这一点?

解决方法

您可以使用记录更新语法来更新字段的值。这将创建一个新的记录值,其字段值与旧值相同,但更新的字段除外。

newSpaceship = spaceship {planet = "alphaCentauriCc"} 

请注意,字段名称必须小写。