【发布时间】:2019-11-24 08:28:21
【问题描述】:
我正在尝试从另一个函数中“即时”创建一个 Lua 函数。新的 Lua 函数,被称为“fx”,应该对一个标量变量进行操作——比如说,x——并返回 f_x(x),其中 f_x(x) 可以是诸如“x+1”或“x”之类的东西^2”。重要的是,给出了函数名“fx”(因为它将在其他函数中使用这个名称),但它的属性——特别是它是否返回“x+1”或“x^2”——应该可以动态修改。
假设“x”是标量值输入变量,“y”是包含指令的字符串,例如“x+1”或“x^2”,“fx”应该强加在“x”上。我天真地尝试过
function make_func (x,y)
return ( function fx(x) return y end )
end
但这不起作用。
任何帮助和指导将不胜感激!
【问题讨论】:
-
"被称为 "fx"" Lua 中的函数并没有真正的名字。您的
make_func只是将函数存储在名为“make_func”的全局表条目中,但函数本身可以独立存在。那么,您是要创建一个存储在名为“fx”的全局变量中的函数,还是要将其存储在哪里? -
@NicolBolas - 对于无意的含糊之处,我深表歉意。我想使用一个名为“fx”的全局函数名。