J'ai remarqué que la fonction Remove From() ne fonctionne pas comme prévu (et sa documentation est mal écrite à la fois dans l'index de script et dans l'aide de JMP). Il semble se comporter de manière irrationnelle lorsque le dernier élément est supprimé de la liste.
J'ai contacté le support JMP à ce sujet. Selon eux, le comportement prévu est le suivant (le même que je m'attendrais à ce qu'il soit):
Le comportement attendu est que Supprimer de renvoie le ou les éléments supprimés, comme le montre votre exemple pour les 9 premiers éléments.De plus, il modifie le conteneur d'entrée en supprimant le ou les éléments.
Je n'ai pas encore entendu parler d'eux s'ils connaissent le calendrier lorsque cela sera corrigé et la documentation mise à jour. Je ferai un rapport ici si j'ai des nouvelles avec un calendrier.
Exemple et une "solution de contournement" (si j'ai vraiment besoin du même comportement que Remove From, j'écrirai ma propre fonction pour le moment):
Names Default To Here(1);
m = 1::10;
For Each({item}, m,
earlier_m = m;
// Returns: The original source with the items deleted.
// Doesn't this return deleted list (except when it is last element...)
removed = Remove From(m, 1);
Print(Eval Insert("^removed^ removed from ^earlier_m^"));
);
// workaround?
m = 1::10;
For Each({item}, m,
earlier_m = m;
removed = m[1];
Remove From(m, 1);
Print(Eval Insert("^removed^ removed from ^earlier_m^"));
);