如果我有这样的函数:
func:: Arg1->Arg2->String
Arg1有一个类似于的构造函数
data Arg1 = something1 something2 something3
我想对func中的一个Arg1构造函数进行模式匹配(下面我对"Val1"进行了模式匹配):
func:: Arg1->Arg2->String
func (a b Val1) e = "Something"
但它一直说我解析符号"a"有问题
括号中的变量仅代表Arg1???"e"是Arg2参数。
编辑:这似乎有效:
func:: Arg1-> Arg2-> String
func (A b Val1) e = "Something"
但我不能在A上进行模式匹配,因为我不在乎那个值。
编辑2:似乎我需要做:
data Arg1 = Arg1 something1 something2 something3
让它工作?!?!
您还必须在构造函数上进行模式匹配。您还忘记为Arg1
指定构造函数。
func :: Arg1 -> Arg2 -> String
func (Arg1 a b Val1 d) e = "Foobar"