It strikes me that whilst it may not be the best programming form, the
same thing could be done readily with a global variable?
M.
Tom Walsh wrote:
Mark Wood wrote:
I have found that there are some functional differences that
Metaware has over
fpc, one example is the yield() function which returns the
intermediate result
of a function call.
?
'?' indeed! I am fascinated! What does yield do exactly... presumably
it returns a result from the function without closing down that
instance of the function? Amazing concept. I am still trying to work
out how that could be useful or even how it could be used (without
breaking stuff upstream).
This would be one example, a function which returns a value each time
it is called. There are some scoping rules which dictate whether the
yield'ed function will init or continue from the last yield point:
============== begin ====================
iterator LoopStep(Start, Stop, StepSize : StdInt) : StdInt;
var
i, Answer, NumLoops : StdInt;
begin
if StepSize = 0 then return;
Answer := Start;
NumLoops := ((Stop - Start) DIV StepSize) + 1;
for i := 1 to NumLoops do begin
Yield(Answer);
Answer := Answer + StepSize;
end;
end;
============== snip =====================
Not sure why they found this terribly useful, but I don't write
financial code...
TomW
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal