Comment peut exprimer cette fonction impérative dans un langage fonctionnel basé sur les baies, comme K (ou Q)?Comment peut-on exprimer cette fonction impérative dans un langage fonctionnel basé sur un tableau comme K (ou Q)?
En C++ bâclée:
vector<int> x(10), y(10); // Assume these are initialized with some values.
// BTW, 4 is just a const -- it's part of the algorithm and is arbitrarily chosen.
vector<int> result1(x.size() - 4 + 1); // A place to hold a resulting array.
vector<int> result2(x.size() - 4 + 1); // A place to hold another resulting array.
// Here's the code I want to express functionally.
for (int i = 0; i <= x.size() - 4; i++) {
int best = x[i + 0] - y[i + 0];
int bad = best;
int worst = best;
for(int j = 0; j < 4; j++) {
int tmp = x[i + j] - y[i + 0];
bad = min(bad, tmp);
if(tmp > best) {
best = tmp;
worst = bad;
}
}
result1[i] = best
result2[i] = worst
}
J'aimerais le plus voir dans kdb et Q, mais d'autres langages fonctionnels sont les bienvenus.
Qu'est-ce que ce code essaie de faire? –
Il essaie de calculer deux choses: Premièrement, à chaque point de x, nous voulons le maximum sur les 4 éléments suivants (appelons cela Nx = max (x), à l'emplacement Px, où Px = 0..3. , à chaque point de x, nous voulons le minimum sur les prochains points Px. – Badmanchild