На многих языках, если вы пишете что-то вроде
if (foo() || bar() || foobar()) { /* do stuff */ }
и foo () возвращает true, тогда bar () и foobar () не будут оцениваться.
Предположим, у меня был следующий код Clojure:
(let [a (simple-function args)
b (complex-function args)
c (too-lazy-to-optimize-this-function args)]
(or a b c))
Если a имеет значение true, будут ли также оцениваться значения b и c или они будут игнорироваться?
Спасибо!