Hi, Maxim,

Pardon my being picky, but we can take your point even
further...

Maxim Olivier-Adlhoch wrote:
> 
> in rebol, creating a function is an expression! so you usually write:
> 
>>funcname: func [arg] [put your code here]
> 

Although we *may* write something like that, when we do so
we are actually combining two distinct concepts in one
expression:

    1)  defining a function, and
    2)  making a particular word refer to that function.

and the habit of thinking of those two together results in
one of the standard newbie questions:

     "How can I find out the name of this function?"

which is no more meaninful than asking for "the name" of a
value of any other type.  (Of course, that's what it means
to say that functions are first-class values...)

     "How can I find out the name of 2?"

     "How can I find out the name of {Hello, world!}?"

etc.

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

The following (console transcript) shows that one *can* insert
values (e.g. strings) into the body of a Python function when
such values aren't actually used for anything.

 >>> def somefunc (x, y):
...     """silly function containing pointless string"""
...     x2 = x * x;
...     y2 = y * y;
...     "foo?";
...     print x2 + y2;
...
 >>> somefunc (3, 4)
25

One can do similar things in Perl.  The parser will let
you know that the value is not used; surely you don't think
that's all bad???  How many of us have *never* made a typo
in a REBOL script that changed the meaning of something in
a way that produced an error, but the interpreter never
helped us find it?  (However, Perl will still run your
program after whining at you.)

For example, take a largish REBOL script and delete a single
occurrence of '+ somewhere in the middle.

-- 
----------------------------------------------------------------------
Joel Neely            joelDOTneelyATfedexDOTcom           901-263-4446

Enron Accountingg in a Nutshell: 1c=$0.01=($0.10)**2=(10c)**2=100c=$1

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to