考虑这个数据类型在标准-ML:如何在Standard-ML中的数据类型中指定类型约束?
datatype 't options = Null
| Some of 't
而且我也有这等数据类型:
datatype option = Apple | Orange | Melon
我想指定datatype options
应该只接受datatype option
作为其输入型't
。这个怎么做?
考虑这个数据类型在标准-ML:如何在Standard-ML中的数据类型中指定类型约束?
datatype 't options = Null
| Some of 't
而且我也有这等数据类型:
datatype option = Apple | Orange | Melon
我想指定datatype options
应该只接受datatype option
作为其输入型't
。这个怎么做?
在SML中没有这样的功能,也没有任何我听说过的SML方言的扩展。
可以定义一个更为特殊的版本作为一个类型别名:
type option_options = option options
而且你可以在模块的签名式的抽象,如果你想要的,但是,将隐藏的构造函数。
我想最接近的是[F *](https://www.fstar-lang.org/)中的改进类型。 –
这个怎么样,用自制的选项:
[email protected]:~> sml
Standard ML of New Jersey v110.79 [built: Tue Dec 22 21:53:32 2015]
- datatype fruits = Apple | Orange | Melon;
datatype fruits = Apple | Melon | Orange
- datatype fruitopt = Nofruit | Fruit of fruits;
datatype fruitopt = Fruit of fruits | Nofruit
-
为什么不删除''t'写'数据类型选项= NULL |一些选项? –
@AlexeyRomanov:我知道我过分的东西。 SML eheh很新颖。非常感谢,真的很有价值! – Andry