Matlab可以做懒惰的评估吗?

时间:2016-02-13 08:48:40

标签: matlab lazy-evaluation

认为你可以用这种方式在Matlab中实现懒惰评估:

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

据我所知,在调用foo()之前,实际上并未对该函数进行求值。可以确认这是否算作懒惰评估?

1 个答案:

答案 0 :(得分:3)

据我所知,没有更好的方法可以在Matlab中实现这一点,also suggested here。请记住,Matlab不会检测同一术语的多个评估。如果你做的事情如下:

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

它将评估foo两次。相反,"传统"方式将评估一次:

foo=1+1
bar=foo+foo