J'ai remarqué que la fonction Remove From() ne fonctionne pas comme prévu (et sa documentation est incorrecte, tant dans l'index des scripts que dans l'aide JMP). Elle 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. D'après eux, le comportement attendu est le suivant (conforme à mes attentes) :
Le comportement attendu est que Remove From 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 reçu de réponse de leur part concernant le calendrier de résolution du problème et la mise à jour de la documentation. Je vous tiendrai au courant ici si j'ai une réponse 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^"));
);