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
<[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.