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 函数,看看它是否有效。
以下代码生成 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 函数,看看它是否有效。