Come esperimento (e perché sto generando funzioni anonime fuori dei dati degli utenti) ho eseguito il seguente codice MATLAB:funzioni anonime si chiamano in 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
Fondamentalmente, ho fatto una funzione anonima chiamata stessa. Invece di agire in modo ricorsivo, MATLAB ha ricordato la vecchia definizione di funzione. Tuttavia, lo spazio di lavoro non lo mostra come una delle variabili e anche l'handle non sembra saperlo.
La vecchia funzione può essere archiviata dietro le quinte finché mantengo quella nuova? Ci sono dei "trucchi" con questo tipo di costruzione?
Direi che il design tutto da solo è un "gotcha" e una cattiva idea, dal momento che è così non intuitivo e si nasconde così tanto da chiunque altro guardando il codice. – tmpearce