В качестве эксперимента (и поскольку я создаю анонимные функции на основе пользовательских данных ), я запустил следующий код MATLAB:
h = @(x) x * x
h = @(x) x * x
h(3)
ans = 9
h = @(x) h(x) + 1
h = @(x)h(x)+1
h(3)
ans = 10
По сути, я сделал анонимный вызов функции. Вместо того, чтобы действовать рекурсивно, MATLAB вспомнил старое определение функции. Однако рабочая область не показывает его как одну из переменных, и дескриптор, похоже, тоже этого не знает.
Будет ли старая функция храниться за кулисами, пока я сохраняю новую? Есть ли какие-то "подводные камни" в такой конструкции?