有没有办法将以下形式的可区分联合与活动模式匹配一起使用?我找不到任何例子。
这就是我想要做的:
type c = a | b
type foo =
| bar1
| bar2 of c
//allowed
let (|MatchFoo1|_|) aString =
match aString with
| "abcd" -> Some bar1
| _ -> None
//not allowed
let (|MatchFoo2|_|) aString =
match aString with
| "abcd" -> Some (bar2 of a)
| _ -> None
为什么“Some”不能用第二种方式?有没有另一种方法来实现同样的目标?