[e-lang] [Caja] Functional auditor for Cajita
ihab.awad at gmail.com
ihab.awad at gmail.com
Tue Dec 8 13:33:47 PST 2009
On Tue, Dec 8, 2009 at 12:05 PM, David-Sarah Hopwood
<david-sarah at jacaranda.org> wrote:
> Note that this implies that the lexical environment of each successfully
> created instance is observationally immutable, not just that it can't
> be directly changed by that instance. I.e. it also can't be changed
> indirectly via an operation on an argument ...
D'oww, I missed that one! Yes, thank you.
> The implementation sketch I gave would preclude that use case because
> if the supplied argument values are not copacetic, the object's read()
> method would throw. This might have been too conservative -- if those
> argument checks were omitted then the property above (that the function
> instance can't change its lexical environment) would still hold.
Yes.
> It would be possible to make the argument and result checks optional
> depending on the function annotation: say, /*@pure*/ includes them but
> /*@functional*/ doesn't. (The environment checks would be the same,
> and both /*@pure*/ and /*@functional*/ would mark instances as
> copacetic.)
Yeah I think we're talking about two, possibly both useful classes of
behavior here.
> What a fun discussion! Thanks for starting it.
Glad to oblige. :)
Ihab
--
Ihab A.B. Awad, Palo Alto, CA
More information about the e-lang
mailing list