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