selectremove 函数
返回由满足项和未满足项组成的二项列表,每个元素仅判断一次。
语法
selectremove(condition, n, list)selectremove(n -> condition, list)selectremove(type, list, typeName)selectremove(has, list, subexpression)selectremove(predicate, list, arguments...)
参数与选项
condition | 针对每个列表元素求值的条件。 |
|---|---|
var | 变量名称。 |
list | 形如 [1, 2, 3] 的列表字面量。 |
predicate | 对每个元素返回 true 或 false 的已保存函数、箭头函数或 proc 过程。无法确定的条件报错,不会被当作满足条件。 |
arguments | 可选的额外参数,在遍历前求值一次,每次调用时放在当前元素之后。 |
示例
- 按条件拆分
selectremove(n > 2, n, [1, 2, 3, 4])返回 [[3, 4], [1, 2]]。 - 按子表达式拆分
selectremove(has, [x, y, x+1], x)返回 [[x, x + 1], [y]]。 - 用已保存谓词拆分
p := (x,a) -> x>a; selectremove(p, [1,2,3,4], 2)返回 [[3, 4], [1, 2]],每组保持原列表的顺序。