优雅的方式来写模式

Mar*_*ark 0 haskell pattern-matching

我发现自己写了这样的东西:

myFnc (MyDataType0 x y z) = someFunction0 (MyDataType0 x y z)
myFnc (MyDataType1 x y)   = someFunction1 (MyDataType1 x y)
...
Run Code Online (Sandbox Code Playgroud)

即我需要对某些数据构造函数进行模式匹配,然后使用整个实例.我目前的方法是匹配数据类型,获取其所有字段,然后在函数体中重建它.有没有更好的办法?

Jos*_*lin 9

你想要@:

myFnc d@MyDataType0{} = someFunction0 d
...
Run Code Online (Sandbox Code Playgroud)

  • `d @ MyDataType0 {}`甚至更好. (9认同)