Matlab 可以进行惰性求值吗?

Can Matlab do lazy evaluation?

认为您可以通过这种方式在 Matlab 中实现惰性求值:

foo = @() 1+1
% do some other things
bar = foo()

据我了解,函数在 foo() 被调用之前不会被实际计算。能否确认这算不算惰性求值?

据我所知,在 Matlab 中没有更好的方法来实现这一点,它是 also suggested here。请记住,Matlab 不会检测同一术语的多个评估。如果您执行以下操作:

foo = @() 1+1
bar=@()foo()*foo()

它将计算 foo 两次。相反,"traditional" 方式将对其求值一次:

foo=1+1
bar=foo+foo