36 lines
800 B
Plaintext
36 lines
800 B
Plaintext
$ include "seed7_05.s7i";
|
|
include "time.s7i";
|
|
include "duration.s7i";
|
|
|
|
const func integer: identity (in integer: x) is
|
|
return x;
|
|
|
|
const func integer: sum (in integer: num) is func
|
|
result
|
|
var integer: result is 0;
|
|
local
|
|
var integer: number is 0;
|
|
begin
|
|
result := num;
|
|
for number range 1 to 1000000 do
|
|
result +:= number;
|
|
end for;
|
|
end func;
|
|
|
|
const func duration: timeIt (ref func integer: aFunction) is func
|
|
result
|
|
var duration: result is duration.value;
|
|
local
|
|
var time: before is time.value;
|
|
begin
|
|
before := time(NOW);
|
|
ignore(aFunction);
|
|
result := time(NOW) - before;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
begin
|
|
writeln("Identity(4) takes " <& timeIt(identity(4)));
|
|
writeln("Sum(4) takes " <& timeIt(sum(4)));
|
|
end func;
|