具有如下自定义变体类型:
type yolo =
| A of string
| B of yolo
| C of yolo * yolo
| D of yolo * yolo
我还有一个函数,可以对
yolo
的实例执行一些操作,与此类似:
let rec swag y =
match y with
| A _ -> 1
| B _ -> 2
| C (left,right) -> (swag left) + (swag right)
| D (left,right) -> (swag left) + (swag right)
由于案例
C
和D
的操作完全相同,我想将它们合并,可以吗?
像
pat1 | pat2
这样的模式与以下两种模式之一匹配:
let rec swag y =
match y with
| A _ -> 1
| B _ -> 2
| C (left,right) | D (left,right) -> (swag left) + (swag right)
当然,这两个模式必须将相同的名称(在本例中为左和右)绑定到相同的类型。