Анонимные функции, вызывающие самих себя в MATLAB

В качестве эксперимента (и поскольку я создаю анонимные функции на основе пользовательских данных ), я запустил следующий код 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 вспомнил старое определение функции. Однако рабочая область не показывает его как одну из переменных, и дескриптор, похоже, тоже этого не знает.

Будет ли старая функция храниться за кулисами, пока я сохраняю новую? Есть ли какие-то "подводные камни" в такой конструкции?

6
задан Andrew says Reinstate Monica 26 June 2012 в 18:23
поделиться