31 lines
557 B
ObjectPascal
31 lines
557 B
ObjectPascal
|
|
function Sq1: sequence of integer;
|
||
|
|
begin
|
||
|
|
yield 1;
|
||
|
|
yield 5;
|
||
|
|
end;
|
||
|
|
|
||
|
|
function Squares(n: integer): sequence of integer;
|
||
|
|
begin
|
||
|
|
for var i:=1 to n do
|
||
|
|
yield i*i;
|
||
|
|
yield 666;
|
||
|
|
begin
|
||
|
|
yield 777;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
function Sq2(n: integer): sequence of integer;
|
||
|
|
begin
|
||
|
|
for var i:=1 to n do
|
||
|
|
begin
|
||
|
|
yield i;
|
||
|
|
yield i;
|
||
|
|
end;
|
||
|
|
end;
|
||
|
|
|
||
|
|
|
||
|
|
begin
|
||
|
|
Assert(Sq1.SequenceEqual(Seq(1,5)));
|
||
|
|
Assert(Squares(5).SequenceEqual(Seq(1,4,9,16,25,666,777)),'not Squares(5).SequenceEqual(Seq(1,4,9,16,25))');
|
||
|
|
Assert(Sq2(5).SequenceEqual(Seq(1,1,2,2,3,3,4,4,5,5)));
|
||
|
|
end.
|