MathTop

map 函数

把函数或表达式应用到各个元素,列表保持顺序,集合结果去除重复项。

语法

  • map(expr, n, list)
  • map(f, list)
  • map(f, list, arguments...)
  • map(x -> expression, list)
  • map(f, set)

参数与选项

expr要变换或求值的表达式。
var变量名称。
list形如 [1, 2, 3] 的列表字面量。
f内置函数名、已保存函数、箭头函数或 proc 过程。每个元素作为第一个参数传入;空集合不会调用函数。
arguments可选的额外参数,在遍历前求值一次,每次调用时放在当前元素之后。
set形如 {-1, 1, 2} 的有限集合;映射后的重复值仅保留一次。

示例

  1. 映射平方map(n^2 + 1, n, [1, 2, 3])返回 [2, 5, 10]。
  2. 映射已保存函数f := x -> x^2+1; map(f, [1,2,3])返回 [2, 5, 10],同一函数可继续用于其他列表。
  3. 带额外参数映射map((x,a) -> x+a, [1,2,3], 10)返回 [11, 12, 13],每个元素都加上固定参数 10。
  4. 映射条件函数map(x -> if x>0 then x else -x end if, [-2,0,3])返回 [2, 0, 3],对每个元素分别选择条件分支。
  5. 映射内联过程map(proc(x) local y; y:=x+1; y^2 end proc, [1,2,3])返回 [4, 9, 16],y 是各次调用的局部变量。
  6. 映射集合map(x -> x^2, {-1,1,2})返回 {1, 4},重复的平方值 1 仅保留一次。
  7. 映射内置求导函数map(diff, [x^2,x^3], x)返回 [2*x, 3*x^2],分别对每个表达式关于 x 求导。