I was wondering, does the interpreter use lazy evaluation for logic statements or not?|
I'll prolly never need this, but you never know.
[size=1](should I explain 'lazy evaluation')[/size]
ok, I looked up lazy evaluation and I *think* it means if you have a function, it only evaluates the arguments when it needs it.|
AGI's cmds only accepts constants or variable addresses so it doesn't really need to decide whether or not to evaluate something.
if you have something like addv(v10, v50+v20); (which you can't do in the current compiler, but you can in my compiler), the compiler doesn't know if the command will need it or not (well, it's a safe bet it does) so it evaluates all arguments.
However, if you have something like if (f10 | f50 | f40) and f10 is true.. then the interpreter won't bother evaluating the rest of them. it just automatically skips them.
umm.. I hope that helped.
Yep, that's exactly what I meant.|
I'm learning Java for the moment and it's very useful for preventing those irritating ArrayIndexOutOfBoundsExceptions. They're pure evil!
And a big thank you to you, sir![/edit]