我尝试定义这种类型:
type 'a operation = {
operande_1 : 'a;
operande_2 : 'a;
func : ('a -> 'a -> 'a) * string;
result : 'a;
};;
但是当我尝试以这种方式初始化这种类型的东西时:
let o = {
operande_1 = 1.0;
operande_2 = 2.3;
func = ((+.), "+");
result = (fst func) operande_1 operande_2};;
我在第Unbound value func
行
result = (fst func) operande_1 operande_2}
”
之前就已定义了所以我没有真正弄错了......有人可以帮忙解决这个问题吗?
答案 0 :(得分:3)
func
是尚未定义的记录字段。因此,要访问它,首先需要表示记录的值。此外,访问记录字段的语法是<record> . <field>
。
正确的代码是这样的:
let o =
let func = ((+.), "+") in
let operande_1 = 1.0 in
let operande_2 = 2.3 in
{
operande_1;
operande_2;
func;
result = (fst func) operande_1 operande_2
}