Трудно сказать, почему, поскольку это кажется ненужным, но, вероятно, это оптимизация для уменьшения количества свободных переменных, на которые ссылаются.В этом случае p
, v
и n
становятся лексическими переменными f
и больше не требуют ссылок на свободные переменные.
Однако, поскольку соответствующие свободные переменные фактически являются лексическими переменнымиvector-map
и не подлежит дальнейшему изменению, компилятору не составит труда автоматически выполнить этот вид оптимизации внутри страны.Теперь, если у Ikarus нет компилятора, это может объяснить ручную оптимизацию.