Hi Ryan,

Ryan Cole wrote:
<...>
> So one difference is probe evaluates its argument, whereas
> ?? captures the argument without evaluation and attempts to
> print its word along with its value. The little tick mark does in
> ??'s function spec grabs a value without evaluating it like normal.
> 
> A common example...
> 
> 
>>>?? b: 5
>>
> b:
> == 5
> 
>>>probe b: 5
>>
> 5
> == 5
> 
> 
> As you see ?? printed out the set-word! b: and returned 5, where
> probe printed 5 and returned 5.  This suprise result that happens with
> ?? occurs becuase it the set-word b action does not happen until after ??
> has returned its value--which is the set-word b.

This discription is a little bit misleading: in the case of '?? b: is 
printed, but 5 isn't returned by '??, 5 is returned because it didn't 
get eaten, and was the last value on the line, as can be seen in this 
extended example.

 >> b
** Script Error: b has no value
** Near: b
 >> ?? b: 7
b:
== 7
 >> b
** Script Error: b has no value
** Near: b
 >> probe b: 7
7
== 7
 >> b
== 7
 >> ?? b:
b:
== b:
 >> ?? b
b: 7
== 7

So,
'probe can be used to print the value of _any_ expression,
'??    normally only makes sense with words, but you get the added
        benefit of being told the name of the word.

Kind regards,

Ingo


-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to