我有这种数据类型
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 ×1