> -----Original Message-----
> From: Nenad Rakocevic [mailto:[EMAIL PROTECTED]
> Sent: Thursday, February 19, 2004 5:50 AM
> To: [EMAIL PROTECTED]
> Subject: [REBOL] Re: MySQL protocol bug
>
>
>
> BTW, it's funny to see how our personal coding style can
> evolve. While
> looking at the piece of code you've exposed to show the
> problem, I was
> thinking how would I wrote that today.
I find this to be more true in rebol than in any other language I've used.
I guess its because rebol, being only expressions, can express the same problem
differently.
Much like any standard math algebra.
1 + 2 = 3 = 4 - 1 = 6 / 2
when using structured languages, they define how the language understands any given
concept and it is your problem to adapt your code to that -syntax- or grammar.
for example:
in python if you want to create a function you MUST use:
def funcname (arg):
put your code here
in rebol, creating a function is an expression! so you usually write:
> funcname: func [arg] [put your code here]
not everyone realizes that you ASSIGN a value to a word (~variable). In the same
manner that you use any other function. A value is calculated by the 'func function
(which creates a new function VALUE).
but you can also do:
> arglist: [arg]
> code-block: [put your code here]
> funcname: func arglist code-block
or
> funcname: func append arglist 'arg2 append code-block [print arg2]
hey, thats polymorphism without even having an object!
Now, how many languages will handle a stray value in code without choking... not even
python will let you insert a string anywhere in its code, if its not being used by a
function.
Because rebol really is just evaluating expressions as it encouters them one thing at
a time, when it hits a string value, for example, IF no previous function required an
argument, it is ignored, and evaluation simply continues to the following item of code.
python or c would give you a syntax error, because it excepts ALL values to be part of
a structure, which is defined by strict syntax and parenthesis useage. When it
encouters bogus data, it just cant handle it, cause it differentiates values and
functions. IMHO rebol does not. They really are all just values, even functions.
I know this is isn't news to any of the fluent rebolers, but once and a while I like
to remind the list about these potent rebol features for newcommers.
There are many other hidden features which rely on the fact that rebol's syntax is
really just concerned with expressions, and with the fact that code IS data, until the
exact moment it is evaluated.
As all the "modern" language get closer and closer to supporting many of the same
features (garbage collecting, objects, dynamic name resolution, etc), I find that
rebol, by its expressive nature, stands out.
Though, being alone in the dark isn't quite good either. Some MAJOR enterprise or
software has to embrace rebol, to let others loose skepticism... and I can't see that
happening yet!
Whatever happened to the old morpheus deal...
-MAx
--
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.