0

私がそのような機能を持っている場合:

func:: Arg1->Arg2->String

Arg1 には次のようなコンストラクタがあります。

data Arg1 = something1 something2 something3

func 内の Arg1 コンストラクターの 1 つでパターン マッチを行いたい (以下では、"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 に答える