作为一个实验(因为我正在从用户数据生成匿名函数),我运行了以下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记住了旧函数定义,而不是递归地执行。然而,工作空间不会将其显示为变量之一,句柄也似乎不知道它。只要保留新的函数,旧函数是否会被存储在后台?这种构造有什么“陷阱”吗?