作爲一個實驗(和因爲我生成匿名函數關的用戶數據)我跑以下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不是以遞歸方式進行操作,而是記住了舊的函數定義。但是,工作區並未將其顯示爲變量之一,並且該句柄似乎也不知道它。
只要保留新功能,舊功能是否會存儲在幕後?這種建築有沒有什麼「陷阱」?
我要說的是,設計全部由自己是個「疑難雜症」和一個壞主意,因爲它是非常不直觀,並隱藏其他人查看代碼這麼多。 – tmpearce