【发布时间】:2016-02-13 08:48:40
【问题描述】:
我认为你可以通过这种方式在 Matlab 中实现惰性求值:
foo = @() 1+1
% do some other things
bar = foo()
据我了解,在调用 foo() 之前,该函数实际上并未被评估。能否确认这算不算懒惰评估?
【问题讨论】:
我认为你可以通过这种方式在 Matlab 中实现惰性求值:
foo = @() 1+1
% do some other things
bar = foo()
据我了解,在调用 foo() 之前,该函数实际上并未被评估。能否确认这算不算懒惰评估?
【问题讨论】:
据我所知,在 Matlab 中没有更好的方法来实现这一点,它是 also suggested here。请记住,Matlab 不会检测到同一术语的多个评估。如果您执行以下操作:
foo = @() 1+1
bar=@()foo()*foo()
它将评估 foo 两次。相反,“传统”方式将对其进行一次评估:
foo=1+1
bar=foo+foo
【讨论】: