Mir ist aufgefallen, dass die Funktion „Remove From()“ nicht wie vorgesehen funktioniert (und ihre Dokumentation sowohl im Scripting Index als auch in der JMP-Hilfe falsch ist). Sie scheint sich irrational zu verhalten, wenn das letzte Element aus der Liste entfernt wird.
Ich habe diesbezüglich den JMP-Support kontaktiert. Demnach ist das beabsichtigte Verhalten wie folgt (so wie ich es erwarten würde):
Das erwartete Verhalten ist, dass Remove From die entfernten Elemente zurückgibt, wie Ihr Beispiel für die ersten neun Elemente zeigt. Zusätzlich ändert es den Eingabecontainer, indem es die Elemente entfernt.
Ich habe noch keine Rückmeldung von ihnen, ob sie einen Zeitplan für die Behebung des Problems und die Aktualisierung der Dokumentation kennen. Ich melde mich hier, sobald ich einen Zeitplan erhalte.
Beispiel und ein „Workaround“ (wenn ich wirklich dasselbe Verhalten wie „Remove From“ brauche, werde ich vorerst meine eigene Funktion dafür schreiben):
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^"));
);