+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?

Есть ли способ узнать, какие имена символов вызывают замедление, кроме тестирования?

Ответы на вопрос(2)

Ваш ответ на вопрос