由于 Lua 支持一流的函数,我想知道您是否可以像在许多函数式语言中那样对运算符进行脱糖。例如,在 OCaml 中,您可以执行以下操作:
let x = (+) 3 5
x
上面的代码使用 value初始化变量3 + 5
。写作(+)
相当于有一个本地函数,它接受两个参数并返回它们的总和。(+) 3 5
正在使用两个参数3
和调用此函数5
。这背后的动机是您可以将运算符直接传递给函数,而不必在之前将其包装在函数中:
local t = {"ab", "d", "c" }
local function op_greaterthan (a,b) return a>b end
table.sort (t, op_greaterthan) --would like to write: table.sort (t, (>))
谢谢!