[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] Proposed new SRFI for immutable lists

Vassil Nikolov | Васил Николов scripsit:

>   By the way, some languages offer yet another approach, in principle
>   similar to the latter, but more procedural.  It is to make the object
>   construction protocol a little more elaborate so the user (not just
>   the implementor) can see object _allocation_ as a separate step from
>   object _initialization_.

This is commonplace in OO languages such as Smalltalk and Java/C#.  The
danger of it, of course, is that methods wind up being called on an object
before it is fully constructed, when its invariants do not yet hold.  In a
multi-threaded program, of course, this is even more likely to happen.
Consequently, more modern APIs provide a mutable builder object that can
have various setup methods called on it, and then a "done" method which
returns an immutable working object.  The builder can then be discarded.
This approach does not permit circularity, but runs far fewer risks.

John Cowan          http://www.ccil.org/~cowan        cowan@x
If you have ever wondered if you are in hell, it has been said, then
you are on a well-traveled road of spiritual inquiry.  If you are
absolutely sure you are in hell, however, then you must be on the Cross
Bronx Expressway.  --Alan Feuer, New York Times, 2002-09-20

Scheme-reports mailing list