我注意到 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^"));
);