在Standard-ML中考虑这种数据类型:
datatype 't options = Null
| Some of 't
我还有其他数据类型:
datatype option = Apple | Orange | Melon
我想指定datatype options
只接受datatype option
作为其输入类型't
。怎么做?
答案 0 :(得分:5)
SML中没有这样的功能,也没有我听说过的任何SML方言的扩展。
您可以将更专业的版本定义为类型别名:
type option_options = option options
如果需要,你可以在模块的签名中使该类型为abstract,但这会隐藏构造函数。
答案 1 :(得分:0)
如何使用自制选项:
strobel@suse132-intel:~> 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
-