假設我有一個Vector
數據類型定義如下:Haskell:喜歡模式匹配還是成員訪問?
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)
(道歉,如果我有任何術語不正確)。
只是爲了完整性:還有還有圖案使用記錄字段匹配的另一種形式:'vecAddA(向量{X = VX,Y = VY,Z = VZ})(向量{X = WX,Y = wy,y = wz})= ...' – hvr