[e-lang] [Caja] Functional auditor for Cajita
ihab.awad at gmail.com
ihab.awad at gmail.com
Tue Dec 8 08:47:42 PST 2009
Thank you for the writeup; interesting. Just one point of motivation
that perhaps I missed from the original post:
On Mon, Dec 7, 2009 at 11:17 PM, David-Sarah Hopwood
<david-sarah at jacaranda.org> wrote:
> To dodge this issue, let's provisionally call a function *instance*
> "copacetic" [*] if:
> - that instance has only captured copacetic values, and
> - it has no side effects and is deterministic whenever it is
> only called with copacetic argument values, and
> - it uses no side-effecting or nondeterministic primitives.
I'm getting at something similar but distinct, call it "i-copacetic".
:) Specifically:
- it has no side effects on its lexical environment regardless
of its argument values
The motivation is this: An object's state is managed by some
surrounding system. However, it is allowed to expose "read()" services
to the outside world that do not participate in this state management.
Each "read()" service may side-effect the supplied arguments, but it
must not side-effect the lexical environment of the service (i.e., the
object itself).
Ihab
--
Ihab A.B. Awad, Palo Alto, CA
More information about the e-lang
mailing list