我为Int类型的矢量定义了一个自定义类型:
data Vector = Vector Int Int Int
现在,我想定义一个将向量添加到另一个向量的函数,但是某种程度上语法是不正确的,尽管其语法与“学好了Haskell很好!”中使用的语法非常相似!。
首先尝试使用前缀表示法:
Prelude> let vp :: Vector -> Vector -> Vector
Prelude| vp (Vector a b c) (Vector d e f) = Vector (a+d) (b+e) (c+f)
<interactive>:33:1: parse error on input ‘vp’
第二次尝试,使用中缀表示法:
Prelude> let vp :: Vector -> Vector -> Vector
Prelude| (Vector a b c) `vp` (Vector d e f) = Vector (a+d) (b+e) (c+f)
<interactive>:35:1: parse error on input ‘(’
我正在使用GHCI v7.8.4
只是缩进错误
Prelude> data Vector = Vector Int Int Int deriving Show
Prelude> :{
Prelude| let vp :: Vector -> Vector -> Vector
Prelude| vp (Vector a b c) (Vector d e f) = Vector (a + d) (b + e) (c + f)
Prelude| :}
Prelude> vp (Vector 1 2 3) (Vector 4 8 12)
Vector 5 10 15
效果很好,所以也可以
Prelude> :{
Prelude| let vp :: Vector -> Vector -> Vector
Prelude| Vector a b c `vp` Vector d e f = Vector (a + d) (b + e) (c + f)
Prelude| :}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句