我是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
};
请分享您的意见。
您需要使用函数表达式:
val r = {var1 = 10, f = fn x => x}
不,您无法在类型定义中定义记录字段的值。但是你可以将一个小辅助函数定义为“构造函数”:
fun new_foo i = {var1 = i, f = fn x => x+x}