Jeff said:
    And a double howdy back to you too, pilgrim!:

Triple howdy, and two pilgrims, O REBOL guru.

[Illustration of functional REBOL code elided.]

Jeff said:
    Your aim is to bash REBOL for it's lack of functional
    purity, no?  :-)

Actually, no.  I'm not bashing REBOL.  If I'm bashing anything,
it is your description of REBOL as a functional language (no
personal insult intended).  The point I'm trying to make is that
REBOL *discourages* functional programming because it provides
numerous COMMAND structures for control flow and data manipulation,
and there is a paucity of non-side effecting natives that can be
combined in EXPRESSIONS.  This encourages an imperative programming
style much like BASIC where statements are executed for their effect,
rather than a functional style where expressions are evaluated for
their value.  A quick perusal of the script archive bears this out.

While you can write functional natives in REBOL, as your code
so nicely shows, these functions are not built-in and readily
available:  why build a screwdriver when you are provided with
a complete selection of hammers?

Jeff said:
    value? 'Hair-splitting == true

No, if I were hair splitting I would point out the following:

   1.  Your version of map, filter, and interleave bomb out
       on very large blocks (size > 1500)

   2.  These versions consume memory like it is going out of
       style.  When I filter a block of 1000 items, the memory
       usage of REBOL grows by almost 10K.

   3.  These versions seem to leak memory.  Even after calling
       recycle, the memory usage never quite gets back to where
       it was.  A long-running REBOL process would cause problems.

Jeff said:
  Can't please 'em all... )-:

I don't want you to.  Just me.




______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

Reply via email to