SetDelayed::Write защищен в модуле для рекурсивно объявленной функции

Следующий код приводит к SetDelayed::write: «Бета-тег в бета-версии [row_Integer, col_Integer] защищен». вывод Mathematica. Я не вижу причины.

Является ли определение функции, которое я выбрал, подходящим для трех разных и рекурсивно объявленных случаев для «b» или это причина ошибки?

Beta[row_Integer, col_Integer] := Module[
    {l1, l2},
    l1 = -1;
    l2 = 2;

    b[m_, r_] := Which[m == 0 && r == 0, 1,
                       m == 0 && r != 0, Sum[a[[k]]*Sum[b[0, s]*k^(r - s)*Binomial[r, s], {s, 0, r - 1}],{k, l1,l2}]/(2^(r + 1) - 2)
                       m != 0 && r != 0, Sum[Binomial[r, i]*m^i*b[0, r - i], {i, 0, r}]];
    b[row,col]
];

person Alexander Stippler    schedule 23.04.2015    source источник


Ответы (1)


Существует встроенная функция Beta.

Попробуйте вызвать свою функцию Bet и посмотрите, работает ли она.

person soegaard    schedule 23.04.2015
comment
плюс один. добавить, лучше начинать все свои собственные символы со строчных букв, чтобы избежать конфликтов - person agentp; 24.04.2015