我是SML的新手,他试图探索SML记录和类型,特别是如何在记录中发挥作用。
例如,我在下面创建类型-
type foo={
var1:int,
f1: int -> int // want to have result of function f1 here
};
现在,如果我声明类型为'foo'的记录-
val rec1 = { var1= 10, ....}
我没有得到如何填充记录中的第二个参数。 f1(10)给出了错误。同样,我们可以在'type'内声明和定义函数吗?
type foo ={
var1:int,
f1 (x)=x+x
};
请分享您的意见。
答案 0 :(得分:1)
您需要使用函数表达式:
val r = {var1 = 10, f = fn x => x}
否,您不能在类型定义中定义记录字段的值。但是您可以定义一些辅助函数作为“构造函数”:
fun new_foo i = {var1 = i, f = fn x => x+x}