我正在创建一个OCAML记录类型。
type matrix =
{m_index:int;n_index:int;matrix:float array array}
;;
我有一个带有两个参数和一个数组的函数。
let create_matrix m n ={m_index=m;n_index=n;matrix=Array.make_matrix~dimx:m_index~dimy:n_index 0.};;
但是,我收到以下错误,有人可以解释原因吗?
错误:未绑定的值m_index
答案 0 :(得分:1)
问题在于您使用m_index
作为右手值来初始化您正在创建的记录的字段。
在初始化包含字段m_index
的记录时,您无法在分配给同一对象的另一个字段的表达式中使用此字段。
直接使用m
参数绑定作为create_matrix
的参数:
let create_matrix m n = {
m_index = m;
n_index = n;
matrix = Array.make_matrix m n 0.
};;