Кусок кода: Result[i, 0] := a; Result[i, 1] := b; Result[i, 2] := c; Result[i, 3] := d; Result[i, 4] := d; Result[i, 5] := f(a, b, c, d, e);
Как видите в [i, 4] пишется не то.
Кусок кода: Result[i, 0] := a; Result[i, 1] := b; Result[i, 2] := c; Result[i, 3] := d; Result[i, 4] := d; Result[i, 5] := f(a, b, c, d, e);
Как видите в [i, 4] пишется не то.
Ну Вы хоть бы сказали, что это за функция. Как люди искать-то должны?
А так это TrueTable для 5 переменных
Это не ошибка, а описка. Код размножался копированием и строка Result[i, 4] := d;
оказалось не поправлена, должно быть := e;
Вообще это стандартная проблема при дублировании кода. Особенно если цель была сделать хороший пример для новичков - так делать не стоит. Лучше как-то так:
##
// Внутренняя функция, не доступная вне модуля
function TrueTable(n: integer; f: function(inp: array of boolean): boolean): array[,] of boolean;
begin
// Явно больше чем максимальный размер массива результата
if n>31 then raise new System.NotImplementedException;
var res_c := 1 shl n;
Result := new boolean[res_c, n+1];
for var bits := 0 to res_c-1 do
begin
var res := new boolean[n+1];
begin
var x := bits;
for var i := n-1 downto 0 do
begin
res[i] := x and 1 <> 0;
x := x shr 1;
end;
end;
res[n] := f(res);
Result.SetRow(bits, res);
end;
end;
// Внешняя функция, пред-описанная в интерфейсе модуля
function TrueTable(f: function(a, b: boolean): boolean) :=
TrueTable(2, \(a,b)->f(a,b));
TrueTable((a,b)->a and b).Println(6);
Единственный дубль кода это \(a,b)->f(a,b)
, но тут правая часть является точной копией левой, без изменений - поэтому простое Ctrl+C, Ctrl+V уже не даст допустить описку.
сможете исправить к следующему релизу?
Один символ поправить могут и разработчики компилятора. Я релизы не выпускаю, я только отдаю разработчикам исходный текст библиотеки. В данном случае не вижу смысла что-то им пересылать. Если потребуют переслать - отправлю, конечно.
Интересные методы разработки. Cvs, тесты, багтрекер… не, не слышали
Чем пытаться неумело язвить, лучше бы написали для проекта что-нибудь полезное. Диванных критиков и без Вас тут достаточно.
Он для этого сюда и пришёл.