我是第一次玩SML中的数据类型。 我用四种扑克牌定义了一个称为西服的数据类型

datatype suit = Spades | Clubs | Hearts | Diamonds;

现在,我想编写一个函数,该函数需要一个西装并返回它的字符串表示形式。 这是目前

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;

我得到这个错误

在此处输入图片说明

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

===============>>#1 票数:0 已采纳

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

  ask by Nick Gilbert translate from so

未解决问题?本站智能推荐:

1回复

标准ml在自定义数据类型中添加元素

我想为Standard ML中的新数据类型创建函数,该数据类型称为intnest,定义如下: 并且我想创建一个将所有整数添加到intlist中的函数,我尝试了以下代码: 我究竟做错了什么? 编辑: 我还尝试了以下方法: 因此x是INT类型,因此第一个选项返回其
1回复

模式匹配自定义数据类型

假设我有一个datatype和type ,如下所示: 我想编写一个函数,该函数将一张卡并检查它是否只有不同的符号: 我可以使用模式匹配来检查给定card吗? 例如(A, A, B)无效,但(B, A, C)有效。
3回复

自定义数据类型

我想创建一些自定义数据类型,但是我不认为我在问正确的问题。 整个.NET中都有“复合布尔”值,我想设计一些自己的值。 我一直在使用一系列布尔变量,它们可以工作,但是不一样。 .NET中的示例包括:Color.Black Alignment.Centered [fontPropert
2回复

在sml中声明数据类型的数据类型

我讨厌如何声明一个数据类型为另一个数据类型。 即 我想声明另一个数据类型的数据类型。 然后,我不需要将卡组中的所有52张卡都分开声明。 因此,我以为我只将卡的值声明为一种数据类型,将卡的颜色声明为另一种数据类型。 当我尝试将数据类型卡与功能匹配时,会出现问题。 我需要声明颜色的
1回复

在SML数据类型中处理匿名函数

我有以下数据类型和3个测试示例: 我仍在学习有关SML的知识,但是我想不出如何“调用”其中一项测试作为递归curring函数。 我尝试了以下功能,但当然不起作用。 有人有提示吗?
1回复

标准SML数据类型列表

所以我有这个数据类型,我必须编写一个函数,将事件列表作为输入,并返回按事件的实际部分排序的列表。 我试图编写一些函数,但是没有想到任何好的方法,主意? 这是我尝试的代码: 我得到的错误: poly:错误:找不到固定的记录类型。 在#2附近发现 poly:错误:找不
1回复

在SML中定义类型?

如果我想检查字符串是否以字母开头,而其余字符可以是字母或数字,那么我将如何定义由这些条件定义的数据类型? 还是将模式匹配作为更好的途径?如果是,我将如何检查呢?
3回复

SML:类型和数据类型之间的差异

我是SML的新手,我想确保我真正了解基础知识。 SML中的类型和数据类型有什么区别,以及何时使用哪个?
1回复

SML:数据类型声明将不允许[]

标准SML基础list定义为 但是,当我尝试创建自己的列表数据类型时出现此错误: 但是,这可行: 但是由于缺少方括号,此版本无法产生类似于列表的输出: 为什么SML不接受[]原始尝试?
1回复

SML使用数据类型进行加法和减法

我想知道如何创建一个数据类型,它可以帮助评估包含(“ 1 + 2”)的字符串 我正在考虑制作一个数据类型