如何分配用户定义的 sml 数据类型以具有整数(作为字符串)数据类型?

How can I assign user defined sml datatypes to have a integer (as string) datatype?

对 sml 很陌生。我的问题是我正在尝试创建自己的数据类型,但我不能在属于数据类型的项目的命名约定中使用 ints

datatype psu = 350w | 450w | 550w | ... etc;

抛出错误:

stdIn:16.15-16.30 Error: syntax error: deleting  STRING BAR STRING

有什么方法可以将这些数字转换为 sml 解释器可以接受的字符串吗?我真的不想将我的变量命名为“三百五十瓦”或任何名称。

我尝试查找 toString 并将变量显式设置为字符串,但我找不到有用的 toString 并且将变量设置为字符串只是引发了另一个错误

如评论中所述,SML 中的标识符(与许多其他编程语言一样)不能以数字开头。

datatype psu = W350 | W450 | W550 | ...

这行得通。

像下面这样的东西也可以,但是不会让你限制可能性。

datatype psu = Watts of int

类似地,如果您将该值表示为 "350W" 之类的字符串,您无法在 compile-time 处确保该字符串中保存的值在一组特定的选项中。