我们假设我有一个datatype
和type
,如下所示:
datatype symbol = A | B | C | D | E | F
type card = symbol * symbol * symbol
我想编写一个函数,它将获取一张卡并检查它是否只有不同的符号:
fun valid_card(card)
case card of
...
我是否可以使用模式匹配来检查给定card
中的清晰度?
例如(A, A, B)
无效,但(B, A, C)
有效。
答案 0 :(得分:1)
在SML中,参数为eqtypes的数据类型声明是eqtypes。所以你可以改用
fun valid(x1, x2, x3) = not(x1 = x2) andalso not(x1 = x3) andalso not(x2 = x3)