考慮這個數據類型在標準-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