Есть две функции; funA и funB соответственно. a.i, a.o, ah, w, c
- массивы в функции funA . Функция funA должна быть передана в качестве функционального параметра в функцию funB , а функции funB должны иметь доступ к массивам. К сожалению, программа проверки синтаксиса обнаружила ошибку «Ошибка: поле несвязанной записи а». Прокомментируйте, пожалуйста, как объявить функциональные параметры в OCaml / ReasonML?
Полный список
module Test = {
let vector = Array.init;
let matrix = (m, n, f) => vector(m, i => vector(n, f(i)));
let length = Array.length;
let rand = (x0, x1) => x0 +. Random.float(x1 -. x0);
let funA = (ni, nh, no) => {
let init = (fi, fo) => {
let i = matrix(ni + 1, nh, fi);
let o = matrix(nh, no, fo);
();
};
let a = {
let i = vector(ni + 1, _ => 1.0);
let o = vector(no, _ => 1.0);
();
};
let ah = vector(nh, _ => 1.0);
let w = init((_, _) => rand(-0.2, 0.4), (_, _) => rand(-2.0, 4.0));
let c = init((_, _) => 0.0, (_, _) => 0.0);
();
};
let funB = (net, inputs) => {
let (ni, nh, no) = (
length(net.a.i),
length(net.ah),
length(net.a.o),
);
();
};
};