Giả sử tôi có một datatype Vector
quy định như sau:Haskell: Ưu tiên phù hợp với mẫu hoặc truy cập thành viên?
data Vector = Vector { x :: Double
, y :: Double
, z :: Double
}
Nó sẽ là bình thường hơn để xác định chức năng chống lại nó sử dụng truy cập thành viên:
vecAddA v w
= Vector (x v + x w)
(y v + y w)
(z v + z w)
Hoặc sử dụng mô hình khớp:
vecAddB (Vector vx vy vz) (Vector wx wy wz)
= Vector (vx + wx)
(vy + wy)
(vz + wz)
(Xin lỗi nếu tôi có bất kỳ thuật ngữ nào không chính xác).
Chỉ cần cho đầy đủ: có cũng là một hình thức của mô hình kết hợp sử dụng các lĩnh vực kỷ lục: 'vecAddA (Vector {x = vx, y = vy, z = vz}) (Vector {x = wx, y = wy, y = wz}) = ... ' – hvr