SetDelayed::Write ... 在递归声明的函数的模块中受到保护

SetDelayed::Write ... is protected in module for recursively declared function

以下代码生成 SetDelayed::write:"Tag Beta in Beta[row_Integer,col_Integer] is Protected." 由 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]
];

有一个名为 Beta 的内置函数。

尝试调用您的 Bet 函数,看看它是否有效。