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