Implémenter la fonction range
Contrairement à Javascript, le langage Python dispose d'une fonction range
qui permet d'itérer
efficacement sur une plage de valeurs.
- Elle prend 1, 2 ou 3 paramètres
- Elle renvoie un itérateur, et non une liste, ce qui permet d'itérer sur de grandes plages de
valeur sans occuper la mémoire correspondante.
Une implémentation possible en Javascript est proposée ci-dessous :
function* range (...args) { // fonction génératrice, nombre d'arguments variables
switch (args.length) {
case 1:
args = [0, ...args];
case 2:
args = [...args, 1];
case 3:
if (args[2] === 0)
throw new Error("Invalid step");
break;
default:
throw new Error('Invalid number of parameters');
}
const [start, end, step] = args;
for (let i = start; step > 0 ? i < end : i > end; i += step)
yield i;
}