Hey now, pilgrim. You can call me guru, or you can call
           me goof ball, but don't call me Sherman! ;-)
 
> Triple howdy, and two pilgrims, O REBOL guru.

 [ . . . ]
 
> 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).


  It seems to me that you could not, with out great
  difficulty, write the functional code that I provided in an
  imperative language.  I strain to imagine how to do those in
  Java.  The definition of "functional", as I read it, has a
  bit of slack, though your definition doesn't seem to. (:

  Does elisp meet your definition of "functional"?  It sure
  has a lot of functions in it aimed at emacs-ee-tasks.  I
  have a fair amount and have seen plenty of elisp code that
  reads as a sequence of COMMAND structures for control flow
  and data manipulation, to borrow your statement below.

  Speaking of elisp-- we've got a half complete REBOL emacs
  mode that was started by a nice bright fellow named Joe.  It
  still gets the closing braces wrong and it chokes on curly
  braced strings, but it's done okay for us up till now.  Wish
  someone could fix it up . . . 


> 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.


  Hmm.. you feel there are "too many imperative forms" in the
  language to be called functional. Okay, so what do you
  prefer it be called?  Procedural?

  REBOL is a hybrid-- the message that you are bashing me for
  was just an attempt by me to give a friend of mine a quick
  and dirty run down of the many awesome features of REBOL.


> 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?

  How do you feel about REBOL's referential transparency?
 
> 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.

          Submit a bug report, aye?  :-)

> Jeff said:
>        Can't please 'em all... )-:
> 
> I don't want you to.  Just me.

    How am I to please you?  You seem harder to please than
    most, O nameless one.

        -jeff

Reply via email to