He observado que la función "Remove From()" no funciona correctamente (y su documentación está mal escrita tanto en el Índice de Scripting como en la Ayuda de JMP). Parece comportarse de forma irracional al eliminar el último elemento de la lista.
Me comuniqué con el soporte de JMP para informarles sobre esto. Según ellos, el comportamiento previsto es el siguiente (igual que yo esperaría):
El comportamiento esperado es que "Eliminar de" devuelva los elementos eliminados, como se muestra en el ejemplo para los primeros 9 elementos. Además, modifica el contenedor de entrada eliminando los elementos.
Aún no he recibido respuesta de ellos sobre cuándo se solucionará esto y se actualizará la documentación. Les informaré aquí si tengo una respuesta.
Ejemplo y una "solución alternativa" (si realmente necesito el mismo comportamiento que Eliminar de, escribiré mi propia función para ello 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^"));
);