Larry,
Actions are a type of "function" (in its broader Rebol sense of any-function!)
that can't be created using Rebol itself. Actions are for all practical
purposes the same as natives (unless you're a Rebol Creator), but there is
some mysterious difference I've never seen explained. Anyone know what the
difference is?
For example:
>> type? :not
== native!
>> type? :none?
== action!
>> type? :ask
== function!
What you see here is the message that Rebol gives you when a datatype return
value is left over after a console command expression is evaluated. When you
do:
>> type? function!
== datatype!
what Rebol sees is the word 'function! , and when it evaluates that word the
result is the function! datatype, and when type? gets that as an argument it
returns the datatype! datatype. Now for some reason there are two datatypes
that are not assigned to a corresponding word: action! and unset! This
oversight can be remedied easily:
>> action!: type? :none?
== action!
>> unset!: (type?)
== unset!
I've complained about this out to feedback, twice, to no avail.
By the way, there's a function on rebol.org you can use to print out all the
words defined in Rebol categorized by their datatype - this will allow you
to see which "functions" are actions, functions, natives and ops.
http://www.rebol.org/utility/huh.r
See you,
Eric