说在标准 ML 中定义几种数据类型:
datatype color = orange | navy | teal | silver | hsl of real * real * real;
datatype direction = east | north | west | south;
然后我定义一个使用上述数据类型的值:
type Cursor = int * int * color * direction;
val cursor : Cursor = (0, 0, orange, east);
它是一个具有位置、绘图颜色和方向的“光标”。我想要的是它的属性最初是 undefined。我可以为每个数据类型添加一个构造函数color
(direction
我将如何使用int
位置值来做到这一点?),如下所示:
datatype color = orange | teal | silver | hsl of real * real * real | undefined;
datatype direction = east | north | west | south | undefined;
val cursor : Cursor = (0, 0, undefined, undefined);
我想这样做,而undefined
不必为每个数据类型显式定义一个额外的构造函数。你能想出一个好的、干净的解决方案吗?某种形式的泛型,无论类型如何,我都可以简单地使用“未定义值”的形式。Nullable
粗略地说,类似于 Javas 。
我的动机是我的光标的属性最初是未定义的。