小编use*_*699的帖子

构造函数模式匹配haskell

我有这种数据类型

data Struct val =  Empty | Exec1 val
                         | Exec2 val 
Run Code Online (Sandbox Code Playgroud)

还有两个虚函数

apply :: Struct -> String
apply (Empty) = "matched Empty"  
apply (exec struct) = "matched Exec1 or Exec2"              

apply' :: Struct val -> String
apply' (Empty)   = "matched Empty"  
apply' (Exec1 _) = "matched Exec1"
apply' (Exec2 _) = "matched Exec2"
Run Code Online (Sandbox Code Playgroud)

第二个工作正常,但第一个导致错误:"模式中的解析错误:exec".你可以解释为什么我不能在构造函数上这样匹配:apply(exec struct)= ...?

当我的数据类型中有多个构造函数时,它会导致很多样板代码,并且必须单独匹配它们.

haskell

7
推荐指数
2
解决办法
4857
查看次数

标签 统计

haskell ×1