Предположим, что у меня есть тип данных Vector
, определенный следующим образом:
data Vector = Vector { x :: Double
, y :: Double
, z :: Double
}
Было бы более обычным определять функции против него с помощью доступа члена:
vecAddA v w
= Vector (x v + x w)
(y v + y w)
(z v + z w)
Или используя сопоставление с образцом:
vecAddB (Vector vx vy vz) (Vector wx wy wz)
= Vector (vx + wx)
(vy + wy)
(vz + wz)
(Извините, если у меня есть какая-либо из терминов неверно).