我刚开始使用 SML,我正在尝试修改一些代码,以便了解它在做什么(我找不到像样的 SML/NJ 调试器,但这是一个单独的问题)。
fun type_check e theta env non_gens =
case e of
constant_int _ => (integer,theta)
|
constant_bool _ => (boolean,theta)
| ...
假设这是有效的代码,因为 constant_int 是已经声明的数据类型的一部分,等等。如何添加打印语句来表示“返回“整数””?我试过:
...
constant_int _ => (print "returning integer") (integer,theta)
...
但我得到:
标准输入:167.22-167.65 错误:运算符不是函数 [tycon 不匹配] 操作员:单位 表达: (打印“返回整数”)(整数,θ)
我想我只是不明白如何执行一系列语句,只有最后一个应该被视为返回值。有什么建议吗?
另外,我将如何打印我自己的数据类型值?当我尝试将数据类型值传递给 print() 时,SML 不喜欢,所以我可能必须为每个数据类型创建一个新的打印函数,对吗?