Haskell との違いtype
で説明されているように、works で定義されたレコードを更新する
type PointRec = { x :: Number, y :: Number }
setX :: Number -> PointRec -> PointRec
setX val point = point { x = val }
ただし、で定義されている場合data
(したがってコンストラクターを指定している場合) は、次のようにはなりません。
data PointRec = PointRec { x :: Number, y :: Number }
setX :: Number -> PointRec -> PointRec
setX val point = point { x = val }
コンパイラから得られるエラーは
Could not match type
そしていくつかの詳細。
ここで何ができますか?