[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Functional objects
- From: Ben Sunshine-Hill <sneftel@...>
- Date: Wed, 22 Sep 2004 12:26:40 -0700
Why hardcode it when you can emulate it?
function makeobjforclosure(c)
local t = {
__index = function(t, k)
return function(...)
return c(k, ...)
end
end
}
setmetatable(t, t)
return t
end
Untested, but should work.
Ben
On Tue, 21 Sep 2004 22:33:58 -0700, Mark Hamburg <mhamburg@adobe.com> wrote:
> PiL finishes the chapter on object-oriented programming with the rather
> Scheme-like approach of implementing objects as function closures. Would it
> make sense to define obj:msg( ... ) as meaning obj( "msg", ... ) if obj were
> a function? This has the downside of meaning that the syntax is no longer
> simply sugar, but it had already ceased to be treated as such in the
> implementation.
>
> It might actually be nicer to have it mean obj( obj, "msg", ... ) but that
> may confuse parameter counts in the implementation since the case where obj
> isn't a function doesn't pass the message to the method.
>
> Mark
>
>