Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Don't understand "try" and "disarm"

From: tim-johnsons:web at: 15-Mar-2006 7:42

* Gabriele Santilli <gabriele-colellachiara.com> [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 <tim-johnsons-web.com> http://www.alaska-internet-solutions.com