GHCi:无法在自定义类型上进行模式匹配

时间:2017-02-23 12:12:59

标签: haskell types pattern-matching ghci

我为Int:

类型的向量定义了一个自定义类型
"android:windowSoftInputMode="adjustResize"

现在我想定义一个向另一个添加向量的函数,但是语法不正确,即使它与Learn You a Haskell For Great Good!中使用的非常相似。

首先尝试使用前缀表示法:

data Vector = Vector Int Int Int

第二次尝试,使用中缀表示法:

    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’

我使用GHCI v7.8.4

1 个答案:

答案 0 :(得分:3)

这只是一个缩进错误

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| :}