0

如果我有这样的功能:

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 上进行模式匹配,因为我不关心那个值。

EDIT2:似乎我需要做:

data Arg1 = Arg1 something1 something2 something3

让它工作?!?!

4

1 回答 1

2

您还必须在构造函数上进行模式匹配。您还忘记为Arg1.

func :: Arg1 -> Arg2 -> String
func (Arg1 a b Val1 d) e = "Foobar"
于 2012-09-12T21:24:15.127 回答