如何创建一个函数来检查被歧视联合的标签是否匹配?
How to make a function which checks, if the labels of discriminated unions match?
假设我们在 F# 中有一个联合类型:
type Example =
|FirstLabel of int
|SecondLabel of int
|ThirdLabel of int
你如何创建一个函数,它接受类型为 "Example" 和 return 的 2 个参数,如果这两个参数共享相同的标签,否则 returns 为 false ?我希望这个函数 return 这些结果,而不考虑整数的值。
所以如果我们有 parameter1 和 parameter2
val parameter1 : Example = SecondLabel 2
和
val parameter2 : Example = Secondlabel 5
函数会 return true
即使彻底搜索,我也找不到这个问题的答案。也许我搜索错误。那么你能不能也给我一个解决这些问题的资源?
let sameLabels x y =
match x, y with
| FirstLabel _ , FirstLabel _
| SecondLabel _, SecondLabel _
| ThirdLabel _ , ThirdLabel _ -> true
| _ -> false
假设我们在 F# 中有一个联合类型:
type Example =
|FirstLabel of int
|SecondLabel of int
|ThirdLabel of int
你如何创建一个函数,它接受类型为 "Example" 和 return 的 2 个参数,如果这两个参数共享相同的标签,否则 returns 为 false ?我希望这个函数 return 这些结果,而不考虑整数的值。
所以如果我们有 parameter1 和 parameter2
val parameter1 : Example = SecondLabel 2
和
val parameter2 : Example = Secondlabel 5
函数会 return true
即使彻底搜索,我也找不到这个问题的答案。也许我搜索错误。那么你能不能也给我一个解决这些问题的资源?
let sameLabels x y =
match x, y with
| FirstLabel _ , FirstLabel _
| SecondLabel _, SecondLabel _
| ThirdLabel _ , ThirdLabel _ -> true
| _ -> false