我们说我有以下数据类型
datatype mytype = Foo | Bar | Baz
并且想要编写类似以下的函数
fun myfun ((Foo|Bar), (Foo|Bar)) = something
| myfun (Baz, _) = somethingelse
| ...
有没有办法为模式Foo|Bar
创建一个别名,这样我就可以写出来一次,避免重复自己?
答案 0 :(得分:2)
不幸的是,答案显然是“不”。已经多次提出“抽象模式”或“视图”的概念,但它是一个棘手的空间,并且没有任何提案完全令人满意(并且这也适用于其他语言,如Ocaml或Haskell)。