如何让我的 haskell 代码适用于所有测试?
How can I make my haskell code work for all of the tests?
将向量放在一个列表中!通过将相同的分量加在一起来添加两个向量。
data Vector = V Int Int Int
vector :: [Vector] -> Vector
vector [] = (V 0 0 0)
vector [V x1 x2 x3] = (V x1 x2 x3)
vector [V x1 x2 x3, V y1 y2 y3] = (V (x1 + y1) (x2 + y2) (x3 + y3))
Haskell 不支持迭代,所以你需要知道如何使用基本递归或者只使用 foldl/foldr.
vectorListSum :: [Vector3] -> Vector3
vectorListSum = foldl (\(V x1 y1 z1) (V x2 y2 z2) -> V (x1 + x2) (y1 + y2) (z1 + z2)) $ V 0 0 0
每个haskell教程都会包含一个相同的例子,也许你应该仔细阅读。
将向量放在一个列表中!通过将相同的分量加在一起来添加两个向量。
data Vector = V Int Int Int
vector :: [Vector] -> Vector
vector [] = (V 0 0 0)
vector [V x1 x2 x3] = (V x1 x2 x3)
vector [V x1 x2 x3, V y1 y2 y3] = (V (x1 + y1) (x2 + y2) (x3 + y3))
Haskell 不支持迭代,所以你需要知道如何使用基本递归或者只使用 foldl/foldr.
vectorListSum :: [Vector3] -> Vector3
vectorListSum = foldl (\(V x1 y1 z1) (V x2 y2 z2) -> V (x1 + x2) (y1 + y2) (z1 + z2)) $ V 0 0 0
每个haskell教程都会包含一个相同的例子,也许你应该仔细阅读。