Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function Wolfram Mathematica——”;至于;循环与纯函数_Function_Loops_For Loop_Wolfram Mathematica - Fatal编程技术网

Function Wolfram Mathematica——”;至于;循环与纯函数

Function Wolfram Mathematica——”;至于;循环与纯函数,function,loops,for-loop,wolfram-mathematica,Function,Loops,For Loop,Wolfram Mathematica,我使用Wolfram Mathematica。让我们设置一个自然数n>=3。我想定义W[I]——纯函数。我会这样做: For[i = 3, i <= n, i++, W[[i]] = (1 - #^2)^2 JacobiP[i - 3, 2, 2, #] &; Print[W[[i]]]] (1-#1^2)^2 JacobiP[i-3,2,2,#1]& (1-#1^2)^2 JacobiP[i-3,2,2,#1]& (1-#1^2)^2 JacobiP[i-3,2

我使用Wolfram Mathematica。让我们设置一个自然数n>=3。我想定义W[I]——纯函数。我会这样做:

For[i = 3, i <= n, i++, W[[i]] = (1 - #^2)^2 JacobiP[i - 3, 2, 2, #] &; Print[W[[i]]]]
(1-#1^2)^2 JacobiP[i-3,2,2,#1]&
(1-#1^2)^2 JacobiP[i-3,2,2,#1]&
(1-#1^2)^2 JacobiP[i-3,2,2,#1]&
...
如何强迫Wolfram从循环的定义中理解我想要这个具体的I?所以我的意思是我想要像这样的smth

(1-#1^2)^2 JacobiP[3-3,2,2,#1]&
(1-#1^2)^2 JacobiP[4-3,2,2,#1]&
...
谢谢大家!!
Andrew Bzikadze这是一个有趣的问题。以纯函数的形式,它拒绝替换,但可以使用
Hold
在不更改
For
循环结构的情况下进行替换

n = 5;
For[i = 3, i <= n, i++,
 expr = (1 - #^2)^2 JacobiP[i - 3, 2, 2, #] &;
 frozen = Map[Hold, expr, 3];
 frozen[[1, 1, 2, 1, 1]] = i - 3;
 w[i] = frozen //. Hold[x_] :> x;
 Print[w[i]]]
576

注意,即使在这种形式下,参数也不会被计算,但替换工作良好,可以使用

f[4]
雅各比[4-3,2,2,1]&

在这种情况下:-

g[i_] := i + 1 &
g[2]
2+1&

这是因为
函数
具有属性
HoldAll
。请参见此处的详细信息部分:


非常感谢!工作得很有魅力。我不知道这个选项。
f[4]
g[i_] := i + 1 &
g[2]