uses Variants;
procedure foo(me: Variant);
begin
case VarType(me) of
varDouble: WriteLn('I am floating cockerel ', me);
varShortInt: WriteLn('Je suis integer ', me);
varString: WriteLn('Soy string ', me);
else
Writeln('Kakoi bagor )))')
end
end;
function Kukareku(what: Integer): Variant;
begin
case what of
0: Kukareku := 42;
1: Kukareku := 3.14;
2: Kukareku := 'stroka';
end;
end;
begin
foo(Kukareku(0));
foo(Kukareku(1));
foo(Kukareku(2));
foo(42);
foo(3.14);
foo('stroka')
end.
dXNlcyBWYXJpYW50czsKcHJvY2VkdXJlIGZvbyhtZTogVmFyaWFudCk7CmJlZ2luCiAgY2FzZSBWYXJUeXBlKG1lKSBvZgogICAgdmFyRG91YmxlOiBXcml0ZUxuKCdJIGFtIGZsb2F0aW5nIGNvY2tlcmVsICcsIG1lKTsKICAgIHZhclNob3J0SW50OiBXcml0ZUxuKCdKZSBzdWlzIGludGVnZXIgJywgbWUpOwogICAgdmFyU3RyaW5nOiBXcml0ZUxuKCdTb3kgc3RyaW5nICcsIG1lKTsKICBlbHNlCiAgICBXcml0ZWxuKCdLYWtvaSBiYWdvciApKSknKQogIGVuZAplbmQ7CgpmdW5jdGlvbiBLdWthcmVrdSh3aGF0OiBJbnRlZ2VyKTogVmFyaWFudDsKYmVnaW4KICAgIGNhc2Ugd2hhdCBvZgogICAgMDogS3VrYXJla3UgOj0gNDI7CiAgICAxOiBLdWthcmVrdSA6PSAzLjE0OwogICAgMjogS3VrYXJla3UgOj0gJ3N0cm9rYSc7CiAgICBlbmQ7CmVuZDsKCgpiZWdpbgogICAgZm9vKEt1a2FyZWt1KDApKTsKICAgIGZvbyhLdWthcmVrdSgxKSk7CiAgICBmb28oS3VrYXJla3UoMikpOwoKICAgIGZvbyg0Mik7CiAgICBmb28oMy4xNCk7CiAgICBmb28oJ3N0cm9rYScpCmVuZC4K