更新使用type PointRec = { x :: Number, y :: Number }
setX :: Number -> PointRec -> PointRec
setX val point = point { x = val }
定义的记录,如Differences from Haskell
data
但是当使用data PointRec = PointRec { x :: Number, y :: Number }
setX :: Number -> PointRec -> PointRec
setX val point = point { x = val }
定义(并因此指定构造函数)时,它不会:
Could not match type
我从编译器得到的错误是
sudo service postgresql restart
和一些细节。
我可以在这做什么?
答案 0 :(得分:11)
您需要解包并包装数据构造函数:
data PointRec = PointRec { x :: Number, y :: Number }
setX :: Number -> PointRec -> PointRec
setX val (PointRec point) = PointRec (point { x = val })