MathTop

apply 函数

将函数名称、箭头过程、unapply 表达式或简单 proc 表达式应用于参数。

语法

  • apply(function, arg1, arg2, ...)
  • apply((x) -> expr, value)
  • apply(proc(x) return expr end proc, value)
  • apply(unapply(expr, x), value)

参数与选项

function函数名称、箭头过程、unapply 表达式、curry 表达式或 proc 表达式。箭头体为单个表达式或 if 语句;包含局部变量或多条语句时使用 proc。
arg按顺序传给过程的参数。

示例

  1. 应用箭头过程apply((x) -> x^2 + 1, 3)返回 10。
  2. 应用命名函数apply(sin, pi/2)返回 1。
  3. 应用 proc 表达式apply(proc(x) return x^2 + 1 end proc, 3)返回 10。
  4. 条件箭头函数体apply(x -> if x > 0 then x + 1 else 0 end if, 3)执行正数分支,返回 4。
  5. 包含局部变量的过程apply(proc(x) local y; y := x + 1; return y^2 end proc, 3)局部变量 y 为 4,结果为 16。
  6. 定义并调用条件函数f := x -> if x > 0 then x + 1 else 0 end if; apply(f, 3)定义时保存函数体而不执行;以 3 调用 f,返回 4。
  7. 在表达式中使用函数f := x -> if x > 0 then x + 1 else 0 end if; f(3) + f(-2)两次调用分别返回 4 和 0,相加得到 4。
  8. 调用时读取自由变量a := 10; f := x -> expand((x+a)^2); a := 2; apply(f, 3)调用时使用 a 的当前值 2,得到 (3 + 2)^2 = 25。