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