3
我想写一个for循环与数学9.因此,一个变量的上限,而不是对于循环变量上限
j = 0;
For[n = 1, n <= 3, n++, j = j + n];
j
(*6*)
我想做
N = 3;
j = 0;
For[n = 1, n <= N, n++, j = j + n];
j
n
(*
0
1
*)
。但是,如图所示,这并没有给出正确的结果;从n
的值看来,循环的主体根本没有被评估。
我已经通过Mathematica文档了解了for循环以及更一般的循环和控制结构(并且还完成了一些DuckDuckGo搜索),但仍然存在一些我缺少的基础知识。它是什么?
为了完整起见,我要指出,我的最终目标是把这个函数:
foo[N] =
Module[{j = 0},
For[n = 1, n <= N, n++, j = j + n;];
j]
foo[3]
N是保留是我最直接的问题的事实。不过谢谢您指出其他问题,特别感谢您指点我的新手问题问题:我需要一段时间来消化这个问题,但看起来真的很有帮助。另外,您是否熟悉Mathematica与Scheme或Haskell的良好对比?假装它的Matlab显然不能很好地工作,但假装它是Lisp并不总是工作。 –
@ChristopherWhite不要让语法糖误导你。 Mathematica是一种功能性的术语重写语言。有一些结构只携带副作用来缓解一些复杂的操作,但通常可以避免。你不应该在Mathematica中使用循环,除了**真的**特殊情况。 –