In Algol 68 (und CPP und ähnlich) geht im Prinzip sowas:
double scalar (int i, int n, double x, double y) { double sum = 0; for (i = 0; i < n; i++) { sum += x * y; } return sum; }
(das ist allein völlig unverständlich -- aber die Absicht ist:)
int n; double [n] [n] a; double [n] [n] b; int i; int s = scalar (i, n, a[0,i], b[i,0]);