* Gabriele Santilli <[EMAIL PROTECTED]> [060315 02:54]:
> 
> Hi Steven,
> 
> On Tuesday, March 14, 2006, 5:46:39 PM, you wrote:
> 
> SW> This "set-word" concept is a bit confusing, but I am going to wait with
> SW> my criticism of the REBOL documentation until I have re-read it, plus
> SW> the two books I have purchased.  Then I'll complain.
> 
> Try something like this at the console:
> 
>    word: write %file "something"
> 
>    word: print "hello"
  Hi Steven: 
  A rebol 'word is a symbol. It may or it may not have a value, if it
  has no value it is considered unset. 

  Lisp programmers understand this instinctively, but for the rest of
  us, it is best to take it one step at a time.

  It took me a long time to understand coming from C/C++

  When you follow Gabrielle's instructions, you will get an error, but
  do not be dismayed. Here's a copy of an annotated console session for
  you which expands a bit:
>> word: print "hello"
hello       ;; print sends "hello" to stdout
** Script Error: word needs a value
** Near: word: print "hello"
;; but you get an error, because the set-word word: expects a return
;; value but print does not return any value
;; now let us use the unset? predicate to test for a return value
>> unset? print "hello"
hello
== true
>> help unset?
USAGE:
    UNSET? value

DESCRIPTION:
     Returns TRUE for unset values.
     UNSET? is an action value.

ARGUMENTS:
     value -- (Type: any-type)

Now try it youself.

I could say more, like how helpful this concept can be, but let's take
it one step at a time.

Once that sinks in a bit, we can show you some really cool tricks with
words that may make you never want to use another language again. 
Or maybe lisp. :-)

HTH
tim




-- 
Tim Johnson <[EMAIL PROTECTED]>
      http://www.alaska-internet-solutions.com
-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to