lua高阶函数功能强大,下面以一个实例进行说明
众所周知,函数求导公式为dy/dx=(f (x+d)-f (x))/d,当d很小很小时。
用lua的高阶函数实现求导,真是小菜一碟。具体见代码示例。
源码中,函数derivative为高阶函数,其参数有2,第一个参数f是函数(调用时传进来要求导的函数f(x)),第二个是d,就是delta。
derivative函数返回的是一个匿名函数,该匿名函数调用初级函数(first class)f实现求导。
参考文献:《Programming in Lua, third edition》.Lua.org.