Я пытаюсь написать функцию cardcolor с или внутри оператора if else, используя sml, как показано ниже
datatype suit = Clubs | Diamonds | Hearts | Spades;
datatype rank = Jack | Queen | King | Ace | Num of int;
type card = suit * rank;
datatype color = Red | Black;
fun cardColor(x:suit,y:rank):color = if (x = Clubs) or (x = Spades) then Black else Red;
, но отображается это сообщение об ошибке:
assig4.m:7.53-7.55 Error: unbound variable or constructor: or
assig4.m:7.57 Error: unbound variable or constructor: X
assig4.m:7.38-7.88 Error: operator is not a function [tycon mismatch]
operator: bool
in expression:
(x = Clubs) <errorvar>
Как можноЯ правильно оцениваю 2 утверждения в операторе if?Я пробовал использовать бар X = пики или трефы и по-разному записать его, но все они не работают с разными ошибками.