level 10
我觉得应该是,“:=”的延迟作用导致会在代入f后Table才开始局部化变量,比如在运行func1(或者定义func1)前给i赋一个值看结果
2025年07月30日 13点07分










看见了吗,Module里的 i 多了个$,从外面传递进来的 i 则没受影响,注意此机制与 Module 生成临时变量的机制(即 i+$+数字 ,上图中也出现了)是完全不一样的。说到这里,聪明的读者可能会想到一个问题:如果我直接传个 i$ 变量进func2,会发生什么现象呢?“哈哈哈你想什么呢你难道以为Mathematica会被骗到吗肯定有相应的防冲突机制的嘛”……很遗憾,Mathematica还真会被骗: