Hello [EMAIL PROTECTED]!

On 10-Gen-00, you wrote:

 j> 2) Without placing any value judgements on them, there are
 j> some
 j>   significant tradeoffs on series values being immutable.
 j> Having immutable series values would push REBOL programming to
 j> a more functional style, would reduce (if not eliminate) the
 j> possibility of unexpected/unintended side-effects (especially
 j> in the case of series values being passed through multiple
 j> layers of function calls), and would likely introduce more
 j> overhead (especially for folks who are used to an imperative
 j> style of programming).

The point I was mainly interested in was this. Being REBOL
strongly based on blocks, adding overhead could not be an option.
Furthermore, once we have REBOL/View or REBOL/Media, performance
can become important in some cases (as can be now with CGI, for
example).
    Personally, I tend to prefer the efficient solution --- in
most cases it is the simplest too.

 j> d) Extend REBOL with pure functional series
 j> operators/functions and
 j>    let the programmer exert control at the expression level
 j> rather than the value level:

 j>    blockref2: immutable-insert blockref1 miscellaneous-cruft
 j>    blockref2: immutable-append blockref1 miscellaneous-cruft
 j>    ; etc.

 j> This implies REBOL (and doc) changes and still requires the
 j> newbie to understand mutable series values, but gives the
 j> programmer access to a more functional style and insurance
 j> against side-effects. It also could be tested (although with
 j> some extra overhead) by some of us (users) writing the
 j> immutable versions as mezzanine functions and playing about
 j> with some specimen problems to further explore the stylistic
 j> and performance issues, prior to any action on the part of the
 j> REBOL, Inc. folks.

It would not be difficult to implement mezzanine functions like
those, if I'm getting the point. It's just a matter of:

immutable-insert: func [series value] [insert copy series value]

(of course with all the refinements etc. etc.)

Regards,
    Gabriele.
-- 
o--------------------) .-^-. (----------------------------------o
| Gabriele Santilli / /_/_\_\ \ Amiga Group Italia --- L'Aquila |
| GIESSE on IRC     \ \-\_/-/ /  http://www.amyresource.it/AGI/ |
o--------------------) `-v-' (----------------------------------o

Reply via email to