SML 中的自定义数据类型

Custom datatypes in SML

我第一次使用 SML 中的数据类型。我定义了一个名为 suit 的数据类型,其中包含四种扑克牌

datatype suit = Spades | Clubs | Hearts | Diamonds;

现在我想编写一个函数,它采用西装和 returns 它的字符串表示形式。目前这里

fun suitname(x) =
if x = Spades then
    "Spades"
else if x = Clubs then
    "Clubs"
else if x = Diamonds then
    "Diamonds"
else if x = Hearts then
    "Hearts"
else
    "Undefined suit";

它编译得很好,但是当我尝试用每套花色调用它时

suitname Hearts;
suitname Spades;
suitname Clubs;
suitname Diamonds;

我收到这个错误

不知道为什么。任何帮助将不胜感激!

此错误消息看起来您定义了数据类型 suit 两次(也许是交互式的?),并且函数的定义使用的是较旧的定义,而调用站点是较新的。尝试重新输入函数定义。