将表达式转换为函数

Convert an expression to a function

如果我有命名表达式,如何将其转换为函数?这是一个例子:

argx: 2*x;
f(x) := argx;

我希望这相当于:

f(x) := 2*x

但我知道我必须以某种方式强制“取消引用”或 argx

有几种方法可以做到这一点。

(1) define(f(x), argx);

(2) f(x) := ''argx;

方法 (2) 仅在您处于顶级解释器中时才有效,因为引号 ''(即两个单引号)仅在首次解析表达式时应用。方法 (1) 在函数内工作,而 (2) 不工作,因此 (1) 更通用一些。但是,由于函数定义是全局的,因此没有太多动机在函数内定义命名函数。