Message d'erreur
Dans le message, %s marque une valeur que le moteur remplit au moment où il lève l'erreur.
L'histoire
Vous venez de voir un builtin s'arrêter en disant qu'il a reçu un nombre d'opérandes différent de celui que son corps lit. Décodons. Chaque builtin déclare ses paramètres. Quand vous l'appelez, le moteur vérifie que l'appel respecte cette déclaration, puis remet au corps du builtin exactement les opérandes livrés. Ici, un désaccord est apparu plus tard : le corps s'attendait à lire un opérande à une certaine position, et il n'y en avait pas, ou bien il y en avait davantage que prévu. Plutôt que de lire au-delà de ce qui a été livré, le builtin s'arrête. Pensez à un cuisinier qui ouvre le frigo pour prendre le troisième ingrédient de la recette alors qu'on ne lui en a donné que deux. Il ne va pas inventer le troisième. Le message vous cite le test de comptage qui a échoué. Ce n'est en général pas une faute de votre script, puisque l'appel avait déjà passé la vérification des paramètres. C'est un désaccord interne entre la déclaration et le corps, à signaler avec le message exact.
Texte issu du catalogue d'erreurs du moteur Rush.
