A New Revealation: Semi-Permeable Membranes
Marc Stiegler
marcs@skyhunter.com
Wed, 27 Oct 1999 10:49:14 -0700
> >As far as the frequency of voids is concerned, I also observer that
> >functions--single-method objects with only the default "run" method--will
> >indeed just about never be void since there's no state to change.
>
> [-] Say what! Write "Lambda Abstraction" on the wall 100 times.
"Lambda Abstraction"
"Lambda Abstraction"
>
> Why should functions have any less access to mutable state than objects?
How does having 1-run-method vs multiple methods effect what state they
have? For an example of a stateful void-revealing function, look at the
"cancel" function inside the smart contract for the covered call option at
http://www.erights.org/elib/capability/ode/ode-bearer.html .
>
>
> >In saying
> >voids are rare, are you looking at examples with lots of functions and
few
> >objects?
>
> [-] No, but I may be programming in a more side-effect-free fashion.
>
>
> >Whether the default-to-void can be made to work or not, I find this
syntax
> >pleasing enough, given the extra functionality it enables, namely the
type
> >checking. Certainly the type checking will be handy for security
auditing.
> >On the other hand, I would wish we didn't have to introduce the
> >type-mechanism on the first page of the intro to E, but so it goes. On
the
> >third hand, a lot of people will actually find it attractive to have type
> >checking on the first page, though it does complexify the first examples.
>
> [+] I feel the same way.
>
> I expect an initial explanation for the novice may say merely
>
> Write ": any" when you want to reveal a value and ": void" when you
don't.
> We'll explain later.
>
> but you're the explanation expert. What should we say?
>
>
> Cheers,
> --MarkM
>