Η συνάρτηση map

Η διαδικασία map μετασχηματίζει μια σειρά στοιχείων σε μια άλλη, με βάση μια συνάρτηση από στοιχείο σε στοιχείο. Αν η συνάρτηση είναι η f και η σειρά αποτελείται από τα στοιχεία:
σ1, σ2, σ3, σ4, σ5 ...
τότε η νέα σειρά θα είναι:
f(σ1), f(σ2, f(σ3), f(σ4), f(σ5) ...

Για παράδειγμα με βάση τη διαδικασία map και αντίστοιχη συνάρτηση f μπορούμε εύκολα να δημιουργήσουμε από έναν πίνακα v έναν νέο πίνακα v' του οποίου τα στοιχεία να είναι διπλάσια κάθε στοιχείου του v:

program Map;
{$F+}
const
	maxindex = 10;

type
	realmap = function(x : real) : real;
	mylist = array [1..maxindex] of real;

var
	i : integer
	l1, l2 : mylist;

procedure map(f : realmap; v : mylist; var vnew : mylist);
var
	i : integer;
begin
	for i := 1 to maxindex do
		vnew[i] := f(v[i])
end;

function double(x : real) : real;
begin
	double := x * 2
end;

begin
	for i := 1 to maxindex do
		readln(l1[i]);
	map(double, l1, l2);
	for i := 1 to maxindex do
		writeln(l2[i]);
end.