我认为你可以通过以下方法在Matlab中实现惰性求值: foo = @() 1+1 % do some other things bar = foo() 据我所知,只有在调用foo()函数时才会实际评估其功能。请确认这是否算作惰性评估。
据我所知,在Matlab中没有比这更好的方法来实现这个,这里也建议了。只需记住,Matlab不会检测相同术语的多次评估。如果你这样做:foo = @() 1+1 bar=@()foo()*foo() 它将会评估foo两次。相反,“传统”的方式只会评估一次:foo=1+1 bar=foo+foo