Task

Create a function which takes in a variable number of arguments and prints each one on its own line.

Also show, if possible in your language, how to call the function on a list of arguments constructed at runtime.



Functions of this type are also known as Variadic Functions.



Related task

   Call a function


program variadicRoutinesDemo(input, output, stdErr);
{$mode objFPC}
 
// array of const is only supported in $mode objFPC or $mode Delphi
procedure writeLines(const arguments: array of const);
var
	argument: TVarRec;
begin
	// inside the body `array of const` is equivalent to `array of TVarRec`
	for argument in arguments do
	begin	
		with argument do
		begin
			case vType of
				vtInteger:
				begin
					writeLn(vInteger);
				end;
				vtBoolean:
				begin
					writeLn(vBoolean);
				end;
				vtChar:
				begin
					writeLn(vChar);
				end;
				vtAnsiString:
				begin
					writeLn(ansiString(vAnsiString));
				end;
				// and so on
			end;
		end;
	end;
end;
 
begin
	writeLines([42, 'is', true, #33]);
end.