I decided to make a simple class implementation. Here's what I managed to come up with:
function class(c)
name=c[1]
_𝘦𝘯𝘷[name]=function(...)
local initargs={...}
local obj={___fnccore={}}
for k,f in pairs(c)do
if type(f)=='function'then
obj.___fnccore[k]=f
obj[k]=function(...)
obj.___fnccore[k](obj,...)
end
end
end
obj.__init__(unpack(initargs))
return obj
end
end |
The (preferred) syntax to use this with looks like this:
class { 'classname'
__init__=function(self,args)
-- Stuff goes here --
end,
-- Other functions here with "self" or something like that as the first argument --
} |
Here's an example:
class { 'printer',
__init__=function(self,a,b)
self.a=a
self.b=b
end,
thing=function(self,c)
print(self.a..self.b..c)
end
}
test=printer('one ','two')
test.thing(' three') |
The output for the above would be:
one two three |
Here is the cartridge containing the above example:
Feedback would be nice!
actually your framework does something native to lua, eg passing self to a function call.
replace:
test.thing(3) |
by:
test:thing(3) |
and ‘self’ will automatically be the first parameter
The reason I picked my style of 'self', is because my main programming language is Python and I wanted it to feel like that.
[Please log in to post a comment]




