+1: это на 10000 больше, чем я удосужился проверить!
твует странная ошибка, которая существует в Mathematica в течение многих лет, по крайней мере, начиная с версии 5.1 и сохраняется до версии 7.
Module[{f, L}, L = f[];
Do[L = f[L, i], {i, 10^4}]] // Timing
{0.015, Null}
Module[{weirdness, L}, L = weirdness[];
Do[L = weirdness[L, i], {i, 10^4}]] // Timing
{2.266, Null}
Что вызывает это? Это проблема хеширования?
Это исправлено в версии 8?
Есть ли способ узнать, какие имена символов вызывают замедление, кроме тестирования?