diff options
| author | Alexander Gavrilov | 2012-09-05 17:37:36 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-09-05 17:37:36 +0400 |
| commit | 27f169e298e658f3957aa2db1f76fe8aa20caef7 (patch) | |
| tree | 8d48333005f504557d6708703c06abb703391f9b /library/lua | |
| parent | 9c6fcee9a9b03b42648152a549fc019f05fff468 (diff) | |
| download | dfhack-27f169e298e658f3957aa2db1f76fe8aa20caef7.tar.gz dfhack-27f169e298e658f3957aa2db1f76fe8aa20caef7.tar.bz2 dfhack-27f169e298e658f3957aa2db1f76fe8aa20caef7.tar.xz | |
Provide a partial application utility function to lua.
Implemented in C++ for efficiency.
Diffstat (limited to 'library/lua')
| -rw-r--r-- | library/lua/dfhack.lua | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/library/lua/dfhack.lua b/library/lua/dfhack.lua index 2cbd019a..a1e89976 100644 --- a/library/lua/dfhack.lua +++ b/library/lua/dfhack.lua @@ -46,6 +46,7 @@ end -- Error handling safecall = dfhack.safecall +curry = dfhack.curry function dfhack.pcall(f, ...) return xpcall(f, dfhack.onerror, ...) @@ -118,7 +119,12 @@ function defclass(class,parent) if parent then setmetatable(class, parent) else - rawset_default(class, { init_fields = rawset_default }) + rawset_default(class, { + init_fields = rawset_default, + callback = function(self, name, ...) + return dfhack.curry(self[name], self, ...) + end + }) end return class end |
