MathTop

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可选的额外参数,在遍历前求值一次,每次调用时放在当前元素之后。

示例

  1. 按条件拆分selectremove(n > 2, n, [1, 2, 3, 4])返回 [[3, 4], [1, 2]]。
  2. 按子表达式拆分selectremove(has, [x, y, x+1], x)返回 [[x, x + 1], [y]]。
  3. 用已保存谓词拆分p := (x,a) -> x>a; selectremove(p, [1,2,3,4], 2)返回 [[3, 4], [1, 2]],每组保持原列表的顺序。