我注意到 Remove From() 函數沒有按預期工作(並且它的文檔在腳本索引和 JMP 幫助中都寫錯了)。 從列表中刪除最後一個元素時,它的行為似乎不合理。
我已就此聯繫了 JMP 支持。 根據他們的預期行為如下(與我期望的相同):
預期的行為是 Remove From 返回刪除的項目,如您的示例顯示的前 9 個項目。此外,它通過刪除項目來修改輸入容器。
如果他們知道何時修復此問題並更新文檔,我還沒有收到他們的回复。 如果我收到時間線的回复,我會在這里報告。
示例和一個“解決方法”(如果我真的需要與 Remove From 相同的行為,我現在將為它編寫自己的函數):
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^"));
);