Me di cuenta de que la función Remove From() no funciona según lo previsto (y su documentación está mal escrita tanto en Scripting Index como en JMP Help). Parece comportarse irracionalmente cuando se elimina el último elemento de la lista.
Me he puesto en contacto con el soporte de JMP sobre esto. Según ellos, el comportamiento previsto es el siguiente (igual que esperaría que fuera):
El comportamiento esperado es que Remove From devuelve los elementos eliminados como muestra su ejemplo para los primeros 9 elementos.Además, modifica el contenedor de entrada eliminando los elementos.
Todavía tengo que recibir noticias de ellos si saben acerca de la línea de tiempo cuando esto se solucionará y la documentación se actualizará. Informaré aquí si recibo una respuesta con la línea de tiempo.
Ejemplo y una "solución alternativa" (si realmente necesito el mismo comportamiento que Eliminar de, escribiré mi propia función por ahora):
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^"));
);